【问题标题】:entity framework only populating child on first item实体框架仅在第一项上填充子项
【发布时间】:2015-07-13 14:56:46
【问题描述】:

当使用预先加载从数据库中获取子元素时,只有 customer 上的第一条 Enrollment 记录会填充 OrderMembers。所有后续的 Enrollment 记录上都有 Order,但没有填充 OrderMembers。

所以我有一个客户有 3 个注册,每个都有一个订单,并且该订单有多个与之关联的人。我已经确认了数据库中的信息并运行了从实体框架生成的查询,并且正在为 OrderMembers 返回数据。但是 OrderMembers 仅在返回的第一个注册时才被填充。其他两个注册只有没有 OrderMembrs 的订单。

包含语句:

DbContext.Customers.Include(x => x.Enrollments.Select(order => order.OrderSnapshot).Select(p =>p.OrderMembers)

类结构:

public class Customers
{
    public IList<Enrollment> Enrollments {get; set;}
}

public class Enrollment
{
    public OrderSnapshot Order {get; set;}
}

public class OrderSnapshot
{
    public IList<Persons> OrderMembers {get; set;}
}

【问题讨论】:

    标签: c# entity-framework entity-framework-4


    【解决方案1】:

    我认为您的语法不正确。应该是

    DbContext.Customers.Include(x => x.Enrollments.Select(order => order.OrderSnapshot.OrderMembers))
    

    https://msdn.microsoft.com/en-us/library/gg671236(v=vs.103).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      相关资源
      最近更新 更多