2016-07-29 55 views
0

我看到很多關於lambda表達式格式的文章,但是我在連接時遇到了錯誤。如何在Asp MVC實體框架中使用lambda表達式進行連接?

我有兩個表一個是tbl_payment和另一個是tbl_bill
tbl_bank具有ID(主鍵),BILL_TYPE
tbl_payment具有ID(主鍵),AMT,BILL_ID(外鍵tbl_bank)。

我想從一個查詢結果中獲得所有數據形式tbl_payment和bill_type從tbl_bill

代碼:

ViewBag.requestHistory = 
       db.tbl_bill.Join(db.tbl_payment, x => x.ID, y => y.BILL_ID, 
    (x, y) => new {x.BILL_TYPE,y.ID,y.AMT,y.COMMENT,y.PAYMENT_METHOD,y.STATUS}).ToList(); 

它給了一個錯誤:

The type arguments for method `Querable.Join<TOuter,.....> cannot be infrred from the usage`. 
+0

將任何帖子標記爲您接受的答案,以便其他人會更喜歡這個答案 –

回答

0

我喜歡用冗長的LINQ語法加入

var requestHistory = 
    from bill in db.tbl_bill 
    join payment in db.tbl_payment on bill.ID equals payment.BILL_ID 
    select new {bill.BILL_TYPE, payment.ID, etc} 
+0

它仍然在給'join'的調用失敗'type inference失敗。 –

+0

@ManishTiwari可能是因爲你的一個外鍵是可空的,參見http://stackoverflow.com/questions/7345039/type-in​​ference-failed-in-a-call-to-join-on-nullable-and-non -nullable-int –

+0

我這樣做,但沒有新的事情發生。 –

0

您可以使用下面的語法:

from t1 in db.Table1 
join t2 in db.Table2 on t1.field equals t2.field 
select new { t1.field2, t2.field3}