1
我有產品Linq的分組由Max不工作
Id | Name | Order
1 | product 1 | 5
1 | product 1 | 9
1 | product 1 | 2
2 | product 2 | 0
3 | product 3 | 1
我需要用最大的訂單號碼僅返回產品表:
Id | Name | Order
1 | product 1 | 9
2 | product 2 | 0
3 | product 3 | 1
試過,但它不工作:
var items = (from i in db.products
group i by new
{
i.Id,
i.Name,
i.Order
} into g
select new
{
g.Key.Id,
g.Key.Name,
Order = g.Where(d => d.Order == g.Max(xx => xx.Order)).First().Order })
但它仍然返回所有5個結果。 謝謝
甚至只是ID? – Rawling 2011-12-22 16:33:00
@Rawling,然後你需要通過'g.First()。Name'來獲取名字,這會轉化爲更糟糕的SQL(假設'db.products'使用LINQ2SQL)。 – 2011-12-22 16:38:25
夠公平的,我對此有點朦朧。這就是爲什麼我們要創建一個新項目來選擇,而不是從組中選擇一個現有項目? – Rawling 2011-12-22 16:44:26