2016-05-22 32 views
0

我創建了這個sql查詢,但我很難將其轉換爲linq lambda。我對linq相當陌生。C#lambda內部連接最大

Select t1.* Fom msgs as t1 
Inner join(
    Select fromUser, MAX(ts) as mts 
    From msgs 
    Where toUser='aUserName' AND isDeleted='0' 
    Group By fromUser 
)t2 On (t2.fromUser=t1.fromUser and t1.ts = t2.mts) Order By ts desc; 

回答

1

你可以做到同樣的事情OrderByDescending(LINQ擴展)和GroupBy

var messages = msg.ToList(); 
var results = messages.Where(x=> x.toUser = "aUserName" AND isDeleted="0") 
    .GroupBy(x=>x.fromUser) 
    .Select(x=> 
    { 
     var maxitem = x.OrderByDescending(y=>y.ts).First(); 
     return new 
     { 
       fromUser = maxItem.fromUser, 
       ts = maxitem.ts, 
       ... // remaining properties. 
     } 
    }) 
    .ToList(); 
+0

有了這個,我得到了「帶有語句正文的lambda表達式不能轉換爲表達式樹」 – LostTragedy

+0

這是Linq到Sql的嗎? –

+0

是的,我將linq連接到sql。 – LostTragedy