title: how to join 4 table in linq
body: <p><br/>
  i'm starter in linq and EF. i Have 4 table </p>
  
  <p>CurrencyUnit</p>
  
  <pre><code>CurrencyUnitID    CurrencyName
  -------------------------------
  1                    Dolar
  2                    Pond
  </code></pre>
  
  <p>Request</p>
  
  <pre><code>RequestID    WayBillNo
  --------------------------
  1            10000
  2            10001
  </code></pre>
  
  <p>CostType</p>
  
  <pre><code>CostTypeID      CostName
  -------------------------------
  1                 A
  2                 B
  </code></pre>
  
  <p>RequestCost</p>
  
  <pre><code>RequestId    CostId     CurrencyUnitId     Amount   Remark
  -----------------------------------------------------------
  1              1              1            200
  1              2              1            400
  2              2              2            1000
  </code></pre>
  
  <p>i Want join this 4 table and get this result</p>
  
  <p>result(A table)</p>
  
  <pre><code>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
  </code></pre>
  
  <p>i write this Query</p>
  
  <pre><code>  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();
  </code></pre>
  
  <p>but get this result(B table)</p>
  
  <p><code>RequestId  WayBillNo  CostId    CostName  CurrencyUnitId   CurrencyUnitName  Amount Remark</code></p>
  
  <hr>
  
  <pre><code>1           10000        1        A          1                 Dollar       200       
  1          10000        2         B          2                 Pond         400
  2          10001        2         B          2                Pond          1000
  </code></pre>
  
  <p>Namely
  if request hasn't cost show all cost for this request and set Amount value 0 , for example A table has 4 rows but B table has 3 rows in Table A for request 2 cost 1  set amount 0 but in table B not set, i Want set.</p>