Итак, согласно this page, Entity Framework должна с нетерпением загрузить несколько уровней с помощью Select
в рамках метода Include
.Entity Framework Eager Загрузка нескольких уровней Исключение
У меня есть следующий код:
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));
Но это Выдает InvalidOperationException
- «Неверный тип выражения» на вызов ко второму относятся. Исключение составляет EntityFrameworkHelper.CollectRelationalMemebers
.
Я также попытался использовать строки в Include
связанных свойствах, но это тоже не удалось (я бы предпочел избежать использования строк, если это вообще возможно).
Я использую EF 5.0 DLL для .NET 4.0. Мои классы EF - это старомодная база данных - сначала EntityObject
.
Кто-нибудь знает причину и есть ли что-нибудь, что я могу сделать для этого исключения?
EDIT:
При использовании версии строки:
var reports = _context.Reports
.Include("Fields")
.Include("Fields.FieldType")
.Include("Fields.FieldType.FieldIdentifier"));
Он бросает InvalidOperationException
- Недопустимый тип выражения.
Каково точное сообщение об ошибке при использовании строковой версии 'Include'? – Slauma
См. Ответ выше. – MgSam
Я имел в виду исключение для ** string ** на основе версии 'Include'. – Slauma