Ram*_*ran 10 c# asp.net-mvc linq-to-entities 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;
}
Run Code Online (Sandbox Code Playgroud)
这一行给出了这个错误:
financialCompliance = datamodel.FinancialCompliances.Where(f => f.ComplianceId == compliance[i].ComplianceId).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
没有帮助堆栈过流回答 我在这个堆栈溢出站点找到了一些答案
等等.但对我没有帮助.所以我问了这个问题.请不要因为已经被问到的原因而关闭这个问题
Sat*_*pal 13
您需要创建一个变量来引用,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;
}
}
Run Code Online (Sandbox Code Playgroud)
Ger*_*old 11
这是关于compliance[i].ComplianceId
.首先创建一个变量:
var id = compliance[i].ComplianceId;
financialCompliance = datamodel.FinancialCompliances
.Where(f => f.ComplianceId == id).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9959 次 |
最近记录: |