-1
我有查詢的SQL:計數和查詢別名與實體框架
select top 10 NAME, count(*) as Number
from Products as pro
join Orders as ord on ord.ID_PRODUCT = pro.ID
group by NAME
order by Number desc
需要在實體框架來編寫這些代碼。 如何寫?
我有查詢的SQL:計數和查詢別名與實體框架
select top 10 NAME, count(*) as Number
from Products as pro
join Orders as ord on ord.ID_PRODUCT = pro.ID
group by NAME
order by Number desc
需要在實體框架來編寫這些代碼。 如何寫?
試試這個
var result = dbContext.Products
.GroupBy(p => p.Name)
.Select(g => new { Name = g.Key, Number = g.Count()}
.OrderByDescending(x => x.Number)
.Take(10)
如果你指望每個產品的訂單數,那麼試試這個
var result = dbContext.Orders
.GroupBy(o => o.Product.Name)
.Select(g => new { Name = g.Key, Number = g.Count()}
.OrderByDescending(x => x.Number)
.Take(10)
好了 - 我沒有測試這一點,但它應該做的,你需要
var result =
(
from q2 in
(
from q1 in
(
from p in Products
join o in orders on p.ID equals o.ID_PRODUCT
select p.NAME
)
group q1 by q1 into grp
select new{NAME = grp.Key, Number = grp.Count()}
)
orderby q2.Number descending
select q2
).Take(10);
select p.NAME
你試過了什麼?如果你完全卡住了,也許看一些例子:http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b –