Как отфильтровать таблицы, которые мне не нужны, когда я использую «включить»?

1

Мой кошмар EF продолжается. Я заметил, когда я использую жадную загрузку include все связанные таблицы будут получать в моем приложении. Так, например, 1 имеет 3 таблицы /POCO, как показано ниже, из ниже POCO и linq я просто хочу получить 2 таблицы, но, тем не менее, когда я проверю генерацию T-SQL, все 3 таблицы будут извлекаться. Как исключить таблицу 3?

Poco

public class TableA{
   public virtual ICollection<TableB> B { get; set; }
}

public class TableB{
   public virtual ICollection<TableC> C { get; set; }
}

public class TableC{

}

LINQ

var rs =(from family in context.A.Include("B")
select family).SingleOrDefault();
  • 0
    Ну, в идеале, не используйте энергичную загрузку. Если у вас нет причин, по которым вы не говорите нам ...
  • 0
    Показать реальный код и вариант использования. У запроса нет причин извлекать таблицу C, поэтому он не должен этого делать, что приводит меня к мысли, что вы что-то упустили.
Показать ещё 1 комментарий
Теги:
linq
entity-framework

1 ответ

1

Если вы хотите контролировать мелкие зерна, на которых загружаются объекты, используйте:

db.Configuration.LazyLoadingEnabled = false;

Обратите внимание, что для каждого экземпляра вашего DbContext вы можете либо получить ленивую загрузку, либо стремительную загрузку.

Вы не должны пытаться использовать оба экземпляра в одном экземпляре.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню