Учитывая следующий код:
var persons = context.PERSONs.Select(
x =>
new
{
personId = x.PERSON_ID,
personName = x.PERSON_NAME,
items = x.ITEMs.Select(
y =>
new
{
itemID = y.ITEM_ID,
itemName = y.ITEM_NAME,
properties = y.PROPERTies.Select(
z =>
new
{
z.PROPERTY_ID,
z.PROPERTY_NAME
}
)
}
)
}
).ToList();
Как можно избежать проблем с выбором n + 1? Пробовал .Include ("ITEMs.PROPERTies"), но это не помогло. Ожидается один запрос с двумя левыми внешними объединениями.
Примечание. Хотелось бы получить общий ответ, потому что я работаю над фоном OData, где сложно создавать запросы для каждого объекта вручную
-edit-
База данных: MS SQL Server
Версия Entity Framework: 6
Может подтвердить, что все свойства являются простыми сопоставленными свойствами (целочисленные и строковые значения, функции и функции не вычисляютсязначения)