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

InformationsquelleAutor Pouya | 2012-05-28
Schreibe einen Kommentar