C# LINQ включает VS Navigation, когда присоединится ⇐ C#

Место общения программистов C#
Anonymous
C# LINQ включает VS Navigation, когда присоединится

Сообщение Anonymous »

This post is translated Ko to Eng.
Я понял, что использование .include () в структуре сущности триггетов с нетерпением ждут загрузки, и когда я включаю несколько сущностей, все они будут соединены в запрос SQL - даже если они не используются в Select. Неиспользуемые сущности не были соединены.
Почему это?TestTable12 имеет отношение к одному к одному с TestTable1
[*]TestTable12 имеет взаимосвязь с многоквартировкой с TestTable2

Вот несколько примеров LINQ-Во всех этих случаях сгенерированный SQL одинаков-он соединяет только testTable1 и извлекает необходимые столбцы. .Include () игнорируется для сущностей, не доступных в Select?// Eager loading - joining one table

var sql = _context.TestTable12
.Include(d => d.TestTable1)
.Where(d => d.RoleCode == role)
.OrderBy(d => d.TestTable1.Order)
.Select(d => new
{
Col1 = d.Col1,
Col2 = d.Menu.Col2,
})
.ToQueryString();

// Eager loading - joining two tables

var sql2 = _context.TestTable12
.Include(d => d.TestTable1)
.Include(d => d.TestTable2)
.Where(d => d.RoleCode == role)
.OrderBy(d => d.TestTable1.Order)
.Select(d => new
{
Col1 = d.Col1,
Col2 = d.TestTable1.Col2,
})
.ToQueryString();

// Lazy loading
var sql3 = _context.TestTable12
.Where(d => d.RoleCode == role)
.OrderBy(d => d.TestTable1.Order)
.Select(d => new
{
Col1 = d.Col1,
Col2 = d.TestTable1.Col2,
})
.ToQueryString();


Подробнее здесь: https://stackoverflow.com/questions/796 ... -when-join

Вернуться в «C#»