Bitte beachten Sie, unten ist zum Beispiel vollständig sake gemacht. Ich habe eine ähnliche Abfrage basierend auf einem SQL-Code, konnte aber nicht in LINQ übersetzen, um den richtigen Wert zu erhalten.wie Zugriff auf Tabelle von eingebettet, wo LINQ C#
Die SQL sieht grundsätzlich wie folgt:
select * from customers c
join proucts p on c.id = p.customerid
join credit r on r.customerid=c.id and ISNULL(r.trandate, c.registeredDate) >= c.registeredDate
Ich habe auch versucht die oben SQL zu optimieren und den Zustand im Inneren, wo zu setzen und es gibt auch den gleichen Wert, den ich unten in meinem # 2 LINQ bin immer (die ist falsch).
Wie kann ich c (Kunden) innerhalb. Wo Kredit? siehe Code
1.
from c in customers
join p in products on c.id = p.customerid
join cr in credit.Where(r=> r.tranDate => c.registeredDate!=null?c.registeredDate : r.purchaseDate) on c.id=cr.customerid
...
2.
Ich weiß, Sie würde vorschlagen, warum es einfach nicht setzen in dem unten wie unten, aber ich bin immer falschen Wert.
from c in customers
join p in products on c.id = p.customerid
join cr in credit on c.id=cr.customerid
where r.tranDate => c.registeredDate!=null?c.registeredDate : r.purchaseDate
Gibt es einen Workaround? Ich habe viele andere ausprobiert, werde aber nicht den richtigen bekommen.