我使用实体框架工作在数据库中调用某个日期。但我的下面的代码给出了这个错误LINQ to Entities无法识别该方法,并且此方法无法转换为商店表达式
LINQ to Entities不识别方法'SchoolBreifcase.Compliance get_Item(Int32)'方法,并且此方法不能转换为存储表达式。
这里是我完整的代码
FinancialCompliance financialCompliance = new FinancialCompliance();
List<Compliance> compliance = null;
if (HttpContext.Current.User.IsInRole("SchoolAdmin"))
{
compliance = datamodel.Compliances.Where(u => u.UserId == userId).OrderBy(c => c.AddedDate).ToList();
}
if (HttpContext.Current.User.IsInRole("User"))
{
compliance = datamodel.Compliances.Where(u => u.VerifierId == userId || u.OwnerId == userId).OrderBy(c => c.AddedDate).ToList();
}
if (compliance != null)
{
for (int i = 1; i < compliance.Count; i++)
{
financialCompliance = datamodel.FinancialCompliances.Where(f => f.ComplianceId == compliance[i].ComplianceId).SingleOrDefault();
if (compliance.Count == i)
{
return financialCompliance;
}
}
}
return financialCompliance;
}
该行给出的错误:
financialCompliance = datamodel.FinancialCompliances.Where(f => f.ComplianceId == compliance[i].ComplianceId).SingleOrDefault();
不利于堆放超过流量答案 我发现这个堆栈溢出网站的一些答案为
LINQ to Entities does not recognize the method
etc .. 但对我没有帮助。所以我问了这个问题。请不要因为已经询问过的任何人关闭此问题
谢谢沙伯,这是一个非常有用的答案。这让我疯狂! – bazza 2016-04-04 21:59:49
如果您访问的内容符合[f.Id] .ComplianceId,即依赖于lambda表达式的参数 – router 2017-12-06 09:05:42