2013-10-07 2 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 для ответа, я проверю и интимный u –

0

Вы можете попробовать что-то вроде этого:

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

Это намек, вы можете исследовать.

Смежные вопросы