Linq to SQL Left Outer Join mit Lambda-Syntax und Join auf 2 Spalten (zusammengesetzter Join-Schlüssel)C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Linq to SQL Left Outer Join mit Lambda-Syntax und Join auf 2 Spalten (zusammengesetzter Join-Schlüssel)

Post by Anonymous »

Ich versuche, einen Inner Join für zwei Spalten mit Linq to SQL als Lambda-Ausdruck zu erstellen. Die normale Abfrage würde so aussehen.

Code: Select all

SELECT * FROM participants
LEFT OUTER JOIN prereg_participants ON prereg_participants.barcode = participants.barcode
AND participants.event_id = prereg_participants.event_id
WHERE (participants.event_id = 123)
Es gelingt mir, mit dem folgenden Code einen Left Outer Join für eine Spalte zu erstellen.

Code: Select all

var dnrs = context.participants.GroupJoin(
context.prereg_participants,
x => x.barcode,
y => y.barcode,
(x, y) => new { deelnr = x, vi = y })
.SelectMany(
x => x.vi.DefaultIfEmpty(),
(x, y) => new { deelnr = x, vi = y })
.Where(x => x.deelnr.deelnr.event_id == 123)
.ToList();
Das Problem ist, dass ich mit dem oben genannten Lambda zu viele Ergebnisse erhalte, weil der Teil AND attendants.event_id = prereg_participants.event_id fehlt. Aber was auch immer ich versuche, ich bekomme nicht die richtige Teilnehmerzahl.

Ich habe mir die folgenden vorhandenen Fragen angesehen, aber keine hat mein Problem beim Schreiben des richtigen Lambda gelöst. Und die meisten Lösungen liegen nicht im Lambda-Format vor oder sind kein Left Outer Join für mehrere Spalten.

So führen Sie Joins in LINQ für mehrere Felder in einem einzelnen Join durch

LINQ to SQL – Left Outer Join mit mehreren Join-Bedingungen

Gruppieren durch Verwendung von mehr als zwei Spalten nach Lambda-Ausdruck

Und die meisten davon aus dieser Google-Suche

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post