wie join-4-Tabelle in linq
ich bin starter in linq und EF. ich Habe 4 Tabelle
CurrencyUnit
CurrencyUnitID CurrencyName
-------------------------------
1 Dolar
2 Pond
Anfrage
RequestID WayBillNo
--------------------------
1 10000
2 10001
CostType
CostTypeID CostName
-------------------------------
1 A
2 B
RequestCost
RequestId CostId CurrencyUnitId Amount Remark
-----------------------------------------------------------
1 1 1 200
1 2 1 400
2 2 2 1000
Möchte ich mich dieser 4 Tabelle und erhalten dieses Ergebnis
Ergebnis(Eine Tabelle)
RequestId WayBillNo CostId CostName CurrencyUnitId CurrencyUnitName Amount Remark
------------------------------------------------------------------------------------------
1 10000 1 A 1 Dollar 200
1 10000 2 B 2 Pond 400
2 10001 1 A 0 0
2 10001 2 B 2 Pond 1000
Schreibe ich diese Abfrage
var items = (from rc in context.CLEARANCE_COST
join c in context.COST_TYPES on rc.COST_ID equals c.COST_ID
join d in context.CLEARANCE_REQUEST on rc.REQUEST_ID equals d.REQUEST_ID
join f in context.CURRENCY_UNITS on rc.CURRENCY_ID equals f.CURRENCY_ID
select new
{
rc.COST_AMOUNT,
c.COST_ID,
c.COST_NAME,
d.WAYBILL_NO,
f.CURRENCY_NAME
}).ToList();
aber bekomme dieses Ergebnis(Tabelle B)
RequestId WayBillNo CostId CostName CurrencyUnitId CurrencyUnitName Amount Remark
1 10000 1 A 1 Dollar 200
1 10000 2 B 2 Pond 400
2 10001 2 B 2 Pond 1000
Nämlich
wenn die Anfrage noch nicht Kosten zeigen alle Kosten für diesen Antrag und legen Wert 0 , zum Beispiel Eine Tabelle hat 4 Zeilen, aber B-Tabelle hat 3 Zeilen in Tabelle A für Anfrage 2 Preis 1 Satz Betrag 0, aber in Tabelle B nicht gesetzt, ich Will.
- Wollen Sie zum durchführen einer inner-oder outer-join?
- hi , check die Abfrage der Antwort............
- äußere
- was möchtest du als Ergebnis ? nicht immer sind Sie überhaupt
- Edit-Frage, Bitte helfen Sie mir. Dank
- hi check meine Bearbeitet anser könnten für Sie arbeiten....:)
- das schema ist nicht klar. Vorausgesetzt Anfrage ist Ihr "root" - Tabelle. Anfrage hat sich eine 0 zu N Beziehung mit RequestCost, RequestCost hat einen Bereich von 0 bis N Bezug auf CurrencyUnit und CostType? Oder einige von Ihnen sind von 1 bis N (FK null ist nicht zulässig)?
- relation 1..n und alle relation nicht Null
- aber ist es möglich, eine Anfrage ohne requestcosts, richtig?
- richtig ist
Du musst angemeldet sein, um einen Kommentar abzugeben.
BEARBEITEN
Try-left-outer-join in linq wie unten....
damit die Abfrage für die Sie für nach zu Sie Tabelle
Überprüfen Sie die post für weitere Details : SQL in LINQ ( Visuelle Darstellung )
Bild zeigt, wie die Verknüpfungen arbeiten in linq
Im Falle eines left outer Joins (unter der Annahme, dass die FK in RequestCost kann null sein)
können Sie folgenden code schreiben
Können Sie folgenden code schreiben zu