Lassen Sie uns sagen, ich habe diese Abfrage in SQL:LINQ: Kombinieren Sie kommen mit der linken
SELECT
....
FROM
TableA a
JOIN TableB b on a.Id = b.Id
ich habe das ganz gut als Linq-Abfrage arbeiten:
var results = (from a in db.TableA
join b in db.TableB on a.Id equals b.Id
select new MyObject {...}).ToList();
Aber jetzt will ich um auch eine linke Verbindung hinzuzufügen. In SQL:
SELECT
....
FROM
TableA a
JOIN TableB b on a.Id = b.Id
LEFT JOIN TableC c on a.Id2 = c.Id2
Ich bin mir nicht sicher, wie dies in der Linq-Abfrage behandelt wird.
Fügen Sie einfach eine Zeile nach Ihrer Tabelle hinzuB Join 'joinc in db.TableC auf a.Id equals c.Id' –
Verhält sich das wie ein LINKER JOIN und schließt alle Zeilen aus TableA ein, auch wenn TableC nun übereinstimmende Datensätze hat (c .ID2 ist null)? –
Sie wissen, wie man [linker äußerer Join in LINQ] schreibt (https://msdn.microsoft.com/en-us/library/bb311040.aspx#Anchor_2), nicht wahr? Schreiben Sie es einfach, wenn es keine andere Verknüpfung in der Abfrage gibt, z. 'Join c in TableC auf a.Id2 gleich c.Id2 in ac aus c in ac.DefaultIfEmpty()' –