我在基于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表达式转换为“字符串”类型,因为它不是委托类型
有什么想法会导致这种情况吗?
FirstOrDefault
,会发生什么?显然,它将在您以后尝试使用的地方失败product
,但是该语句可以编译吗?