OK, więc zgodnie z this page, Entity Framework powinien z niecierpliwością ładować wiele poziomów za pomocą metody Select
w metodzie Include
.Entity Framework Enager Ładowanie wyjątków wielopoziomowych
Mam następujący kod:
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));
Jednak to generuje InvalidOperationException
- „Nieprawidłowy rodzaj ekspresji” na wezwanie do drugiego należą. Wyjątek pochodzi z EntityFrameworkHelper.CollectRelationalMemebers
.
Próbowałem również używać ciągów do właściwości powiązanych z Include
, ale to również się nie udało (wolałbym unikać używania ciągów, jeśli to w ogóle możliwe).
Używam biblioteki DLL EF 5.0 dla .NET 4.0. Moje klasy EF są staromodną bazą danych - najpierw EntityObject
s.
Czy ktoś zna przyczynę i czy jest coś, co mogę zrobić w związku z tym wyjątkiem?
EDIT:
Podczas korzystania z wersji wyrażenie:
var reports = _context.Reports
.Include("Fields")
.Include("Fields.FieldType")
.Include("Fields.FieldType.FieldIdentifier"));
To rzuca InvalidOperationException
- Nieprawidłowy typ ekspresji.
Jaki jest dokładny komunikat o wyjątku podczas korzystania z opartej na ciągach wersji "Uwzględnij"? – Slauma
Zobacz odpowiedź powyżej. – MgSam
Miałem na myśli wyjątek dla ** stringowej wersji 'Include'. – Slauma