简体   繁体   English

使用实体框架(DbSet)查询顶部子项

[英]query for top child items with Entity Framework (DbSet)

I have a list of Order objects. 我有一个Order对象列表。 Each Order object has a list of OrderItems. 每个Order对象都有一个OrderItems列表。 The OrderItem object has a ProductId, and quantity property. OrderItem对象具有ProductId和数量属性。

Given a list of Order objects (ex: var orders = _dbContext.Orders;) how can I find my top selling ProductIds (based on total quantities over all the orders in my list)? 给定Order对象的列表(例如:var orders = _dbContext.Orders;),如何找到最畅销的ProductId(基于列表中所有订单的总数量)?

I guess I'm looking for a LINQ statement. 我想我正在寻找LINQ语句。

You can use 您可以使用

orders.SelectMany(o=> o.OrderItems).OrderByDescending(oi=> oi.quantity).Take(5)

I would be careful at the generated sql though, sometimes it gets ugly. 我会小心生成的sql,有时会变得难看。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM