2013-10-07 167 views
1

在LINQ我試圖做這樣的Linq加入多個條件?

select * from tbl1 join tbl2 on tbl1.column1= tbl2.column1 and tbl1.column2 = tbl2.column2 

我怎麼能寫在LINQ的上述查詢....我想這樣的,但給錯誤

var sasi = from table1 in dtFetch.AsEnumerable() 
      join table2 in dssap.AsEnumerable() 
      on new { 
       table1.Field<string >["SAPQuotationNo"], 
       table1.Field<string >["Invoiceno"]} 
      equals new { 
       table2.Field<string>["SAPQuotationNo"], 
       table2.Field <string>["Invoiceno"] 
      } 

回答

5
  • 使用匿名類型
  • 賦予的屬性名稱
  • 選擇一些
  • 使用DataRow.Field的方法與圓括弧

var sasi = from table1 in dtFetch.AsEnumerable() 
      join table2 in dssap.AsEnumerable() 
      on new 
      { 
       SAPQuotationNo = table1.Field<string>("SAPQuotationN"), 
       Invoiceno = table1.Field<string>("Invoiceno") 
      } equals new 
      { 
       SAPQuotationNo = table2.Field<string>("SAPQuotationNo"), 
       Invoiceno = table2.Field<string>("Invoiceno") 
      } 
      select table1; 
+0

tahnks迴應,我會檢查和親密的你 –

0

你可以嘗試這樣的事情:

from A in context.A 
join B in context.B on new { id = B.ID,//..., type = A.ID,//...} 

這是暗示,你可以探索。