2014-06-23 76 views
0

我有一個SQL(獲取了最新的日期都不同的MID),我想將其轉換爲LINQ查詢和lambda表達式SQL - 轉換查詢到的LINQ to SQL和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的語法。謝謝

回答

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(); 
+1

謝謝Sergey的工作!據我所知,如果我必須由多個字段組合,例如.GroupBy(x => new {x.MID,x.Country})如何指定將MID作爲關鍵字?您能否提供一個示例,謝謝 – Ben

+1

@Ben鍵將代表用於分組的對象。如果你有兩個屬性的匿名對象,那麼鍵就是那個對象。 Getting MID看起來像'g.Key.MID' –

+0

您好Sergey,我想檢索另一個參數,如果添加在.GroupBy中,然後在.Select中,例如Name = g.Key.Name然後它使用Name和MID作爲不同。如何在GroupBy中使用唯一的MID作爲獨特的並在.Select中檢索另一個參數?再次感謝 – Ben