如何在Asp MVC实体框架中使用lambda表达式进行连接?

时间:2016-07-29 18:21:32

标签: c# asp.net-mvc entity-framework join lambda

我看到很多关于以lambda表达式格式加入的文章,但我在加入时遇到了错误。

我有两个表格tbl_payment,另一个表格tbl_bill tbl_bankID(主键),BILL_TYPE tbl_paymentID(主键),AMTBILL_IDtbl_bank的外键)。

我希望在一个查询结果中从tbl_payment获取tbl_bill和bill_type的所有数据。

代码:

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`.

2 个答案:

答案 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}

答案 1 :(得分:0)

您可以使用以下语法:

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