Если у меня есть 3 таблицы:Entity Framework 4 нагрузки и включают в себя объединить
Table1, Table2, Таблица3
И Таблица3 имеет FK для Table2, который имеет FK для Table1
Тогда я загружаю мой объект, как это:
using(Entities entities = new Entities()
{
Table1 table = entities.Table1.FirstOrDefault();
table.Table2.Load();
}
Как я могу с нетерпением нагрузки на Таблицу 3 tABLE2, потому что LazyLoading выключен.
Я знаю, что я могу использовать Include в инструкции FirstOrDefault, но он будет генерировать слишком большое соединение.
ОТВЕТ
using(Entities entities = new Entities())
{
Table1 table = entities.Table1.FirstOrDefault();
var table2 = table.Table2.CreateSourceQuery().Include("Table3")
.Execute(MergeOption.AppendOnly);
table.Table2.Attach(table2);
}
определить «слишком большое соединение». Использование include не должно отличаться от использования Load, кроме того, что происходит в одном запросе. –
Без загрузки отдельный запрос будет выполняться только для получения записей заграничных таблиц. Проблема в том, что в Таблице 3 также есть 5 внешних таблиц, которые необходимо загрузить. Запрос, сохраненный в блокноте, составляет около 100 кб. У меня скорее есть отдельный запрос для иностранных записей (что и делает загрузка). – YesMan85