读书人

有个group by 的linq还真难写,该怎么解

发布时间: 2012-12-28 10:29:04 作者: rapoo

有个group by 的linq还真难写
SELECT S.GoodsName, S.Unit, SUM(OL.Quantity) AS Quantity,
SUM(OL.Price * OL.Quantity) AS Total
FROM OrderList OL INNER JOIN Shop S ON OL.GoodsID = S.ID
GROUP BY S.GoodsName, S.Unit

我只能写出
var q = from x in db.TopWinCMS_Shop
join y in db.TopWinCMS_OrderList on x.ID equals y.GoodsID
group x by new { x.GoodsName, x.Unit } into g
select new { g.Key.GoodsName, g.Key.Unit, Quantity = 0, Total=0 };

Quantity ,Total 不知道怎么进行sum
哎,group by 的是 x 表,sum的是 y表。


[解决办法]

引用:
不行啊。

into g 以后,g 就是 x 的那个表了。

一楼到4楼的
g.Sum(ol=>o.Quantity)都不行,因为Quantity字段是y表的。

Try:

group new{x,y} by new { x.GoodsName, x.Unit } into g

读书人网 >.NET

热点推荐