2017-03-31 2 views
-1

Ich möchte links verbinden mit Linq Lambda Ausdruck. Ich habe versucht, Abfrage mit Join versucht, aber jetzt möchte ich mit linken Join erstellen, so dass jeder mir helfen kann, wie es geht.Links Join mit Gruppe von Linq Lambda-Ausdruck C#?

Hier ist dies meine Frage:

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

Mit dieser Abfrage, ich will keine Benutzerdaten diejenigen, die nicht in natürlich Tabelle sind, so möchte ich auf diese Daten auch in natürlich Tabelle in Benutzer-ID in oder nicht.

+0

Sie haben nicht angegeben, was mit Ihrer Anfrage falsch ist –

+0

i in coruse Tabelle Benutzer-ID avaible oder nicht rieght jetzt in Kurs Userinfo Daten zurückgeben möchten Tabelle Benutzer-ID ist nicht dann userinfo dieser Benutzer wird nicht so ich möchte diesen Benutzer auch – coderwill

+0

Sie können Ihre Lösung hier finden http://StackOverflow.com/Questions/21537469/how-to-make-left-join-in-Lambda -linq-Ausdrücke – user2960398

Antwort

0

können Sie verwenden

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}); 

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

+0

ich habe diese welle aber das versuchen Zeit, die ich nicht bekommen habe, Tabelle in einem Array von vielen. – coderwill

+0

Hallo, ich versuche diese Abfrage, aber Fehler bekommen keine Datensätze. – coderwill