Ok, quindi in base allo this page, Entity Framework deve caricare con impazienza più livelli utilizzando uno Select
all'interno del metodo Include
.Entity Framework Eager Caricamento di più livelli Eccezione
Ho il codice seguente:
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));
Eppure questo getta un InvalidOperationException
- "tipo non valido di espressione" sulla chiamata alla seconda includere. L'eccezione proviene da EntityFrameworkHelper.CollectRelationalMemebers
.
Ho anche provato a utilizzare le stringhe per le proprietà relative a Include
, ma anche questo ha avuto esito negativo (preferisco evitare di utilizzare le stringhe se possibile).
Sto usando la DLL EF 5.0 per .NET 4.0. Le mie classi EF sono database vecchio stile EntityObject
s.
Qualcuno conosce la causa e se c'è qualcosa che posso fare su questa eccezione?
EDIT:
Quando si utilizza la versione stringa:
var reports = _context.Reports
.Include("Fields")
.Include("Fields.FieldType")
.Include("Fields.FieldType.FieldIdentifier"));
getta InvalidOperationException
- tipo non valido di espressione.
Qual è il messaggio di eccezione esatto quando si utilizza la versione basata su stringa di "Include"? – Slauma
Vedere la risposta sopra. – MgSam
Intendevo l'eccezione per la ** versione ** basata su stringa di "Include". – Slauma