如何获得一个类似于tsql查询的lambda查询?
问题描述:
有一个T-SQL查询:如何获得一个类似于tsql查询的lambda查询?
select [ProductNumber] ,max([ProductRevNumber])
from Products
group by [ProductNumber]
尝试LINQ查询:
ProductsDBContext.Products.GroupBy(x => x.ProductRevNumber)
.Select(group => ProductNumber,
ProductRevNumber = group.Max(x => x.ProductRevNumber));
拉姆达查询不起作用。
答
我想这是你所追求的:
var latestProducts = ProductsDBContext.Products
.GroupBy(p => p.ProductNumber).Select(g => new
{
ProductNumber = g.Key,
MaxProductRevNumber = g.Max(p => p.ProductRevNumber))
});
答
from p in db.Products
group p by p.ProductNumber into g
select new
{
ProductNumber = g.Key,
ProductRevNumber = g.Max(p => p.ProductRevNumber)
};
是什么g.Key代表什么?这是一个特殊的关键字或某种类型? – dotnetN00b 2012-07-13 17:25:15
g.Key是您分组的字段的值(即p.ProductNumber)。 – 2012-07-13 17:29:46