Ok, so nach this page sollte das Entity Framework laden eifrig mehrere Ebenen durch einen innerhalb des Select
Include
Methode.Entity Framework Eager Loading Multiple Levels Exception
Ich habe den folgenden Code:
var reports = _context.Reports
.Include(rt => rt.Fields)
.Include(rt => rt.Fields.Select(f => f.FieldType))
.Include(rt => rt.Fields.Select(f => f.FieldType.FieldIdentifier));
Doch dies wirft ein InvalidOperationException
- „Ungültige Art des Ausdrucks“ auf dem Aufruf der zweiten umfassen. Die Ausnahme kommt von EntityFrameworkHelper.CollectRelationalMemebers
.
Ich habe auch versucht, Zeichenfolgen zu Include
verwandten Eigenschaften zu verwenden, aber das scheiterte auch (ich würde lieber vermeiden, die Zeichenfolgen wenn überhaupt möglich).
Ich benutze die EF 5.0 DLL für .NET 4.0. Meine EF-Klassen sind altmodisch Datenbank-erste EntityObject
s.
Kennt jemand die Ursache und wenn ich irgendetwas über diese Ausnahme tun kann?
EDIT:
Wenn die String-Version verwenden:
var reports = _context.Reports
.Include("Fields")
.Include("Fields.FieldType")
.Include("Fields.FieldType.FieldIdentifier"));
Es wirft InvalidOperationException
- Ungültige Art des Ausdrucks.
Was ist die genaue Fehlermeldung, wenn Sie die String-basierte Version von 'Include' verwenden? – Slauma
Siehe Antwort oben. – MgSam
Ich meinte die Ausnahme für die ** String ** basierte Version von 'Include'. – Slauma