2016-07-29 54 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}