2011-08-22 87 views
1

我怎麼能翻譯這對LINQ to SQL的TSQL到LINQ翻譯

我想要得到的所有消息響應(MR),但在先生每個號碼我只希望(M)的第一條消息之後收到的消息被送到

select mr.* 
    from 
     (select distinct PhoneNumber, MIN(SentDate) as MinSentDate 
     from Messages 
     groupby PhoneNumber)m, 
     join   
     MessageResponses mr on m.PhoneNumber = mr.PhoneNumber 

     where mr.ReceivedDate > m.MinSentDate 

TKS

回答

2

這將是這個樣子

var query = from m in (from me in context.Messages 
         group me by me.PhoneNumber into mgr 
         select new 
         { 
         PhoneNumber = mgr.Key, 
         MinSentDate = mgr.Select(x => x.SentDate).Min() 
         }).Distinct() 
      join mr in context.MessageResponses 
      on m.PhoneNumber equals mr.PhoneNumber 
      where mr.ReceivedDate > m.MinSentDate 
      select mr;