Io chiamo una data nel mio database usando il lavoro di frame entità. ma il mio codice qui sotto che dà questo erroreLINQ to Entities non riconosce il metodo e questo metodo non può essere tradotto in un'espressione di negozio
LINQ alle Entità non riconosce il metodo metodo "SchoolBreifcase.Compliance get_Item (Int32)" e questo metodo non può essere tradotto in un'espressione di archivio.
Ecco il mio codice completo
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;
}
Questa linea dà questo errore:
financialCompliance = datamodel.FinancialCompliances.Where(f => f.ComplianceId == compliance[i].ComplianceId).SingleOrDefault();
non aiuta impilare più di risposta flusso ho trovato alcune risposte in questo sito overflow dello stack per
LINQ to Entities does not recognize the method
ecc. Ma non mi aiuta. Così ho fatto questa domanda. Si prega di non chiudere nessuno questa domanda per il motivo di già chiesto
Grazie Satpal, questa è una risposta molto utile. Questo mi stava facendo impazzire! – bazza
Cosa succede se si accede a qualcosa come compliance [f.Id] .ComplianceId dipende dal parametro dell'espressione lambda – router