我有一个对象的导航属性,比如 Items,比如 Order。如果我想获取订单列表,包括商品,我可以执行以下操作:
var orders = dbContext.Order.Include(o => i.Items);
这很好用,但现在我只想为每个订单购买 3 件商品,我想知道实现这一目标的最佳方式。
一种方法是执行以下操作:
var orders =
(from o in dbContext.Order
join i in dbContext.Items on o.Id equals i.OrderId
select new { o.Id, i })
.GroupBy(o => o.Id)
.SelectMany(i => i.Take(3))
这很好用,虽然生成的 SQL 有点复杂,但我想知道是否有更直接(或高性能)的方式。
谢谢,埃里克