Я не знаю, является ли это проблемой EL Lazyness или реальной ошибкой EF, потому что эта нерегулярность случается иногда (примерно 1 раз в 10 раз по тому же коду) Проблема заключается в том, что по некоторым причинам некоторые случайные навигационные свойства (не всегда одинаковые) не загружаются с активной ленивой загрузкой и созданием прокси.LazyLoading слишком ленив, чтобы загрузить некоторые навигационные свойства
Пример представляет собой форму с полями + - 40, которая представляет Person, которая имеет реляционное соединение с множеством других таблиц и других таблиц, в другие таблицы. Я использую ленивую загрузку, потому что мне кажется, что это лучший подход из-за количества таблиц, участвующих в Форме. Проблема в том, что некоторые поля появляются пустым, потому что некоторые nav. свойства не загружаются.
Реальный вопрос: Есть ли кто-нибудь, кто знает причину, по которой EF останавливает ленивую загрузку навигационных свойств или загружает только «половину из них»?
Код примера слишком сложный и частный (предприятие) для обмена здесь.
Обычно Я вижу, что это происходит, когда 'DbContext', который использовался для загрузки объекта, вышел из сферы действия, был удален и/или GC'd. Если вы знаете, что поля должны заполнять форму, почему бы не '.Include()' их? – CodingGorilla
Спасибо CodingGorilla, это обычно действительно, я видел много сообщений, вызванных disposed/Gc, это не тот случай, я уже прокомментировал Dispose() в моем dbcontext. Причина, по которой я не хочу .Include() заключается в том, что приложение довольно обширно и построено на предположении ленивой загрузки. Для Include() все было бы довольно смешно. Кроме того, больше идей? –