假设我有一个 Order 实体和一个 OrderItem 实体,并且我试图一次获取多个订单的详细信息(包括项目)。
我可以.Include
像这样使用 Order 和 OrderItem 详细信息:
var orders = db.Orders
.Include(o => o.OrderItem)
.Where(o => orderIds.Contains(o.Id));
但是,假设我不能使用.Include
,因为它不起作用。
相反,我可以获取所有订单,然后获取所有订单项,如下所示:
var orders = db.Orders.Where(o => orderIds.Contains(o.Id));
var orderItems = db.OrderItems.Where(i => orderIds.Contains(i.OrderId));
这将给我所有的订单和(单独)所有相关的订单项。但是如何将对象“附加”OrderItem
到相关Order
对象,以便导航属性正常工作?
(换句话说,我如何确保order.OrderItems
并orderItem.Order
在不导致 EF 从数据库中获取数据而不是使用我已经检索到的数据的情况下工作)。