我使用實體框架工作在數據庫中調用某個日期。但我的下面的代碼給出了這個錯誤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