gpt4 book ai didi

c# - LINQ to Entities 无法识别该方法并且无法将此方法转换为存储表达式

转载 作者:可可西里 更新时间:2023-11-01 08:55:14 24 4
gpt4 key购买 nike

我使用 Entity Framework 在我的数据库中调用某个日期。但是我下面的代码给出了这个错误

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

等..但对我没有帮助。所以我问了这个问题。请不要有人因为已经问过而关闭这个问题

最佳答案

您需要创建一个变量来引用 compliance[i].ComplianceId 然后稍后使用它。

for (int i = 1; i < compliance.Count; i++)
{
var complianceId = compliance[i].ComplianceId;
financialCompliance = datamodel.FinancialCompliances.Where(f => f.ComplianceId == complianceId ).SingleOrDefault();
if (compliance.Count == i)
{
return financialCompliance;
}
}

关于c# - LINQ to Entities 无法识别该方法并且无法将此方法转换为存储表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15812018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com