2014-01-06 60 views
0

我有一個Order對象列表。每個Order對象都有一個OrderItems列表。 OrderItem對象具有ProductId和quantity屬性。使用實體框架查詢頂級子項目(DbSet)

給定一個Order對象列表(例如:var orders = _dbContext.Orders;) 如何找到我最暢銷的ProductIds(基於我列表中所有訂單的總數量)?

我想我正在尋找一個LINQ語句。

回答

1

您可以使用

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

我會小心的,雖然生成的SQL語句,有時它變得醜陋。

+0

謝謝!一個人如何「窺視」生成的SQL? – noel

+0

我爲此使用了Sql Profiler。如果你有Sql Server Management Studio,你應該可以在文件菜單下找到它:Tools> SQL Server Profiler。 – quakkels

+0

只要它幫助任何人現在:有一個很好的分析器:免費的http://stackify.com/prefix,允許用戶分析性能,包括sql命令 – cpoDesign