Ich habe das List<>
Objekt wie unten geholt (mit .Include()
):Expression kann nicht Lambda enthält Ausdrücke
List<vDetail> entityvDetails =
context.vDetails
.Include("payInstallment.appsDetail")
.Include("payInstallment.appsDetail.application")
.Include("payInstallment.appsDetail.purposes")
.Where(e => e.vch_id == 123).ToList();
Und dann irgendwo im Code voraus habe ich versucht, wie unten die Entitätsdatensatz zu filtern:
foreach (vDetail item in lstVDetails)
{
...
int purposeId = entityvDetails.Where(e => e.sad_id == item.sad_id).FirstOrDefault().payInstallment.appsDetail.purposes.prp_id;
...
}
Code kompilieren perfekt. Allerdings Rückkehr der Laufzeit folgende Fehler (obwohl alle Navigations enthalten sind):
Object reference not set to an instance of an object.
Also habe ich für das Debuggen des Uhr-Fenster. Jetzt, während die Analyse der folgenden Anweisung in Ãœberwachungsfenster:
entityVoucherDetails.Where(e => e.sad_id == item.sad_id).FirstOrDefault()
das Überwachungsfenster erzeugt folgende Fehlermeldung:
Expression cannot contain lambda expressions.
Bitte, wenn jemand kann mir sagen, was könnte der Grund sein?
'FirstOrDefault' ausdrücklich erlaubt nullrefs. Wenn du sicher bist, dass es nie null ist, verwende "First". Führen Sie mehr Prüfungen für Nullref über mehrere Zeilen durch, bevor Sie annehmen, dass etwas nicht null ist. Wird auch beim Debuggen helfen. Weisen Sie das Ergebnis von 'entityvDetails.Where (e => e.sad_id == item.sad_id) .FirstOrDefault()' einer dedizierten Variablen zu. – BlueM