2016-04-07 7 views
0
私は、同様のクエリの多くは周りの掲載が、私たちは、エンティティの枠組みの中で、以下のSQLクエリを書くことができる方法を知っていると思いますがいることを知っている

Entity Frameworkの - 左のほとんどの最近のレコードは

select * from RequestDetail d 
    left join (select RequestDetailId, Max(RequestedOn) RequestedOn from RequestHistory group by RequestDetailId) as h 
    on h.RequestDetailId = d.Id 

読むに参加多くの投稿と私は正確なレプリカを見つけることができませんでした。

答えて

1

あなたはエンティティへのLINQで同じ操作を行うことができます。私は、内側のクエリを作成している

var innerquery=from e in RequestHistory 
       group e by e.RequestDetailId into g 
       select new { 
          RequestDetailId=g.Key, 
          RequestedOn =g.Max(r=>r.RequestedOn) 
          }; 

var query= from d in RequestDetail 
      join h in innerquery on d.Id equals h.RequestDetailId into gj 
      from e in gj.DefaultIfEmpty() 
      select new {d, e}; 

まず、あなたがそれを行う方法をよりよく理解するために、しかし、あなたは1で両方のクエリをマージすることができ、それdoesnの違いはありません。

+0

ようこそ。) – octavioccl

関連する問題