2016-09-27 2 views
0

Ich möchte alle Elemente aus db.Accounts zurückgeben. Wie mache ich einen rechten Join auf der folgenden linq Abfrage?rechts beitreten auf meiner linq Abfrage

 var query = (
        from tradeTbl in db.Trades 
        join acctTbl in db.Accounts on tradeTbl.AccountID equals acctTbl.AccountID 

Ich habe zu ändern versucht,

 var query = (
        from acctTbl in db.Accounts 
        join tradeTbl in db.Trades on acctTbl.AccountID equals tradeTbl.AccountID 
        where acctTbl.AccountActive == true 

immer noch nicht funktioniert ... wenn ich das gleiche Abfrage in SSMS setzen und ändern es in SSMS arbeitet an LEFT JOIN

+0

das ist das Problem ... Ich weiß nicht, wie es geht. normalerweise würde ich richtig RECHTS JOIN acctTbl – solarissf

+0

kann nicht scheinen, es richtig zu bekommen, ich bin Code über – solarissf

Antwort

1

Schreiben Sie einfach es in Bezug auf eine linke (äußere) Verbindung durch Umkehr der verbundenen Tabellen.

var query = 
    from a in db.Accounts 
    join t in db.Trades on a.AccountID equals t.AccountID into ts 
    from t in ts.DefaultIfEmpty() 
    select ...; 
+0

posting Ich muss etwas einfach zu vermissen sein. Ich habe Ihre versucht und es gibt immer noch nicht alle Werte in db.Accounts zurück. Wenn ich das gleiche in SSMS einfüge und es in LEFT JOIN ändere, funktioniert es. – solarissf

+0

Tut mir leid, ich gehe überall hin. Es sollte ein linker äußerer Join sein, aber ich vermischte es mit einem inneren Join. –

+0

das hat funktioniert ... danke !!!! – solarissf