实体框架包括嵌套集合和嵌套属性



我有4个类

public class Customer
{
    public string CustomerName { get; set; }
    public ICollection<Order> Orders{ get; set; }
}
public class Order
{
    public string OrderNumber { get; set; }
    public ICollection<OrderLine> OrderLines { get; set; }
    public OrderType Type { get; set; }
}
public class OrderLine
{
    public string StockItem { get; set; }
}
public class OrderType
{
    public string Type { get; set; }
}

使用实体框架,我想从客户级别开始提取所有信息。我可以获取大部分信息,但我无法让 OrderType 显示订单。

这就是我到目前为止所拥有的。

var customerOrderDetails = _myOrderRepository
                           .GetAll()
                           .Include(o => o.Orders)
                           .ThenInclude(l => l.OrderLines)

我尝试在 o.Orders 之后添加选择,但这似乎不起作用。

你可以做这样的事情:

var customerOrderDetails = _myOrderRepository
                           .GetAll()
                           .Include(o => o.Orders)
                           .Include(o => o.Orders.Select(l => l.OrderLines))
                           .Include(o => o.Orders.Select(t => t.Type))
var customerOrderDetails = _myOrderRepository
                       .GetAll()
                       .Include(o => o.Orders)
                       .ThenInclude(l => l.OrderLines)
                       .Include(o => o.Orders).ThenInclude(t => t.Type)

在订单行之后添加另一个包含,然后选择类型似乎有效。

最新更新