实体框架 - 无法将lambda表达式转换为类型'string',因为它不是委托类型

.net c# entity-framework lambda

我在基于C#的代码中使用Entity Framework。我遇到了意想不到的怪异,正在寻找建议。

案例1,2,3,4 ......项目:
RivWorks.dll
RivWorks.Service.dll
RivWorks.Alpha.dll

样品(所有这些工作):
RivWorks.Alpha.dll:

public static bool EndNegotitation(long ProductID)
{
    var product = (from a in _dbFeed.AutoWithImage 
                   where a.AutoID == ProductID select a).FirstOrDefault();
...
}

RivWorks.Service.dll

public static RivWorks.Model.NegotiationAutos.AutoWithImage 
    GetProductById(long productId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.AutoID == productId select a;

    return myProduct.FirstOrDefault();
}
public static List<RivWorks.Model.NegotiationAutos.AutoWithImage> 
    GetProductByCompany(Guid companyId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.CompanyID == companyId select a;

    return myProduct.ToList();
}

等等

案例“古怪”:
RivWorks.Web.Service.dll(WCF项目)
包含与其他项目相同的引用。

public NegotiateSetup GetSetup(string method, string jsonInput)
{
    ...
    long.TryParse(ProductID, out result);
    var product = (from a in _dbFeed.AutoWithImage 
                   where a.AutoID == result select a).FirstOrDefault();
    ...
}

我收到此编译时错误(在我的编辑器中突出显示“where”一词):
无法将lambda表达式转换为类型'string',因为它不是委托类型

任何想法会导致什么?

一般承认的答案

对于那些对结果感兴趣的人:
我在代码的头部缺少一个简单的Using语句。

using System.Linq;

这修正了它。


热门答案

在我的情况下,它失踪了

using System.Data.Entity;




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因