Ich habe 3 Tabellen. Master, Verbraucher & Ladung. requestid ist pk für den Master, der in der Verbrauchstabelle & des Verbrauchers existiert. Verbraucherpk ist consumerid & requestID. ladung pk ist ladung id und fk ist consumer id. Ich versuche, Spalten aus allen Tabellen anzuzeigen, aber einige Consumer-IDs werden nicht angezeigt, wenn sie angezeigt werden, da in der Belastungstabelle keine Zeile darauf verweist. Ich habe versucht, links beizutreten, aber immer noch nicht angezeigt. Irgendwelche Vorschläge?Wie zeige ich einen Wert an, der in einer Tabelle vorhanden ist, aber keine Zeile an eine andere Tabelle gebunden ist, an der 3 Tabellen beteiligt sind?
Edit:
So habe ich auf herausgefunden, wie man links zu tun, kommen aber wie mache ich es, wenn für 3 Tische? Ich kann costoreid anzeigen, wenn kein Eintrag vorhanden ist, kann aber keine Rechnung erhalten, wenn kein Eintrag bei den Verbrauchern vorhanden ist. Ein Master kann einen Verbraucher haben oder nicht, und ein Verbraucher kann eine Gebühr haben oder nicht. .
var query = from m in IM.GetMaster()
join co in CM.GetConsumers()
on m.InvoiceId equals co.InvoiceId
join ch in CCM.GetCharge()
on new { co.InvoiceId, co.ConsumerId }
equals new { ch.InvoiceId, ch.ConsumerId } into temp
from ch in temp.DefaultIfEmpty()
select new {
InvioceID = m.InvoiceId,
ConsumerID = co == null? 0 : co.ConsumerId,
ChargeID = ch == null ? 0 : ch.ChargeId,
Amount = ch == null ? 0 : ch.Amount
};
See [hier] (https://msdn.microsoft.com/en-us/library/bb311040.aspx#Anchor_2) So führen Sie linke äußere Joins in LINQ korrekt aus. –