在Entity Framework中选择具有多个包含的特定列

时间:2018-03-14 21:07:10

标签: c# entity-framework

我正在尝试从包含多个包含的上下文中获取特定列,但是当我尝试时:

Context.Include(i => i.c)
       .Include(i => i.l).Select(s=> new LocationCatalog { Name  = s.Name})
       .Include(i => i.p)
       .Include(i => i.li)
       .Include(i => i.pcl)

VS在选择后抛出错误。

我怎样才能做到这一点?我想为每个include指定列。

错误说明例如:i.p不包含i.l

的定义

1 个答案:

答案 0 :(得分:1)

实体框架无法实现这一点。你可以包括整个表格(正如你所做的那样Include),或者你根本不包括它。
如果您只想加载特定列,可以执行此操作,但请查看它是如何进行手动处理的:

Context
    .Select(i => new YourType
    {
        c = i.l,
        l = i.l,
        x = new X 
        {
            a = i.x.a // only the properties you want here
        }
        ...
    });

您使用Select的那一刻,Include完全被忽略,因此您无法同时使用它们。