如何避免嵌套实体中的select n + 1问题

时间:2019-10-31 09:06:46

标签: entity-framework

给出以下代码:

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,没有函数或计算值)

0 个答案:

没有答案