实体框架仅在第一个项

时间:2015-07-13 14:56:46

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

使用预先加载来从数据库中获取子元素时,只有客户的第一个注册记录才会填充OrderMembers。所有后续的注册记录都有订单,但没有填充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;}
}

1 个答案:

答案 0 :(得分:0)

我认为你没有正确的语法。它应该是

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

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