SQL - 将查询转换为linq到sql和lambda表达式

时间:2014-06-23 22:17:30

标签: c# sql linq linq-to-sql

我有一个sql(使用最新的Date获取所有不同的MID),我想将其转换为linq查询和lambda表达式

  SELECT     MID, MAX(Date) AS 'Date'
  FROM         TABLE1
  WHERE     (Status = '1')
  GROUP BY MID

我有这个lambda,但我不知道如何获得MID字段

            var result= (db.TABLE1
                       .Where(x => x.Status == 1)
                       .GroupBy(x => x.MID)
                       .Select(                
                               x => x.Max(x=>x.CreatedDate)
                       )).ToList();

请建议如何修复linq查询和lambda的语法。谢谢

1 个答案:

答案 0 :(得分:0)

  

但我不知道如何获得MID字段

使用组的键访问您用于分组的列。因此,您按单列分组,然后键将是MID列的值。然后使用匿名对象选择自定义字段集:

var result = db.TABLE1
               .Where(x => x.Status == 1)
               .GroupBy(x => x.MID)
               .Select(g => new {
                    MID = g.Key,                
                    Date = g.Max(x => x.CreatedDate)
               }).ToList();