使用预先加载来从数据库中获取子元素时,只有客户的第一个注册记录才会填充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;}
}
答案 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