2017-03-31 109 views
-1

我想用linq lambda表達式編寫左連接。我試過使用連接查詢,但現在我想創建使用左連接,所以任何人都可以幫助我怎麼做。由linq lambda表達式c#左加入組?

這裏,這是我的查詢:

var UserList = db.UserInfo 
       .Join(db.Course, u => u.id, c => c.userid, (u, c) => 
       new { u, c }).GroupBy(r => r.u.id) 
       .Select(g => g.OrderByDescending(r => r.c.datetime) 
       .FirstOrDefault()).OrderByDescending(a => a.u.datetime).ToList(); 

使用此查詢,我不希望用戶數據的那些誰不是當然的表,所以我想這個數據也是在課程表中的用戶ID或不。

+0

您還沒有指定什麼是錯的查詢 –

+0

我想用戶信息數據當然rieght現在返回coruse表用戶ID avaible或不表用戶ID不是那麼userinfo這個用戶沒有得到所以我想這個用戶也 – coderwill

+0

你可以找到你的解決方案在這裏http://stackoverflow.com/questions/21537469/how-to-make-left-join-in-lambda -linq-expressions – user2960398

回答

0

可以使用

var qry = Foo.GroupJoin(
     Bar, 
     foo => foo.Foo_Id, 
     bar => bar.Foo_Id, 
     (x,y) => new { Foo = x, Bars = y }) 
.SelectMany(
     x => x.Bars.DefaultIfEmpty(), 
     (x,y) => new { Foo=x.Foo, Bar=y}); 

裁判:How do you perform a left outer join using linq extension methods

+0

我試過這個波,但是時間我沒有得到任何提交選擇很多的表。 – coderwill

+0

您好我正在嘗試這個查詢,但得到錯誤沒有得到任何記錄。 – coderwill