【问题标题】:How to use join using lambda expression in Asp MVC Entity Framework?如何在 Asp MVC 实体框架中使用 lambda 表达式连接?
【发布时间】:2016-07-29 18:21:32
【问题描述】:

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

我有两张表,一张是tbl_payment,另一张是tbl_bill
tbl_bankID(主键),BILL_TYPE
tbl_paymentID(主键) Key),AMT,BILL_ID(tbl_bank的外键)。

我想在一个查询结果中获取来自tbl_payment 和来自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`.

【问题讨论】:

  • 将任何帖子标记为您接受的答案,以便其他人更喜欢该答案

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


【解决方案1】:

我更喜欢使用详细的 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}

【讨论】:

  • 它仍然给出错误type inference failed in the call to 'join'
  • @ManishTiwari 这可能是因为您的外键之一可以为空,请参阅stackoverflow.com/questions/7345039/…
  • 我这样做了,但没有发生任何新情况。
  • @ManishTiwari 作为记录,我发布的只是为了演示语法。如果bill.IDpayment.BILL_ID 不对应,那么您可能想加入其他内容
猜你喜欢
  • 1970-01-01
  • 2013-05-18
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多