给出以下代码:
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”)。Include(“ ITEMs.PROPERTies”),但没有帮助。会期望有2个左外部联接的单个查询。
注意-想要一个通用的答案,因为我在OData背景上工作,因为很难手动为每个实体进行查询
-编辑-
数据库:MS SQL Server
实体框架版本:6
可以确认所有属性都是简单的映射属性(int和string actullay,没有函数或计算值)