2015-02-12 1 views
1

При запросе DbContext с активной загрузкой для заполнения навигационных свойств требуется Include("Navigation"). Однако в некоторых случаях я хотел бы просто Includeвсе свойства навигации для объекта. Есть ли способ для этого или способ сделать это? Я предполагаю, что вы могли бы с отражением, но я бы предпочел избежать этого.Есть ли способ включить() все с помощью dbcontext?

То, что я знаю:

var entity = db.Table.Include("Navigation1").Include("Navigation2").First(); 

Что я хочу:

var entity = db.Table.IncludeAll().First(); 
+0

Я работал над проектом EF4, где мы создали метод для этого, но я рекомендую против него. Он использовал отражение, чтобы пройти через свойства объекта, а затем вызвать .Include() для тех, которые реализовали IObjectWithChangeTracker или ObservableCollection. Это было очень удобно, но это вызвало некоторые нечетные побочные эффекты, которые привели к неэффективным запросам. –

ответ

4

Нет. Существует нет. Entity Framework намеренно заставляет вас говорить о том, что вы хотите загрузить, поскольку добавление соединений делает ваш запрос более тяжелым и медленным. Это должно защитить вас от вас самих. Если вам нужны соединения, отлично, но, по крайней мере, вы точно знаете, сколько вы понесете, и почему, когда вы укажете их явно.

+1

Спасибо за ответ. Мне просто кажется странным, все эти вещи, которые, по сути, говорят: «Мы не делали это особенным, потому что мы не доверяем вам, чтобы не навязываться. Постскриптум Еще раз спасибо за более ранний ответ, я люблю Нокаут! – Tevis

+0

Это действительно очень распространено в рамках. Они упрямны по своей природе. Это написано, чтобы делать то, что разработчики считают, что это должно быть сделано. Однако печальная правда заключается в том, что конечные пользователи, как правило, будут стрелять себе в ногу, вы даете им пистолет. Ужасно - Загрузка всего - большая пушка. –

+0

@Tevis Его даже не это. Слишком легко создать базу данных, где вы заканчиваете циклы или иерархии. В какой момент ... что вы хотите сделать EF? – Aron

 Смежные вопросы

  • Нет связанных вопросов^_^