C# Where子句中的LINQ子查询在LINQPad中返回错误

C# Where子句中的LINQ子查询在LINQPad中返回错误,c#,.net,linq,entity-framework,linqpad,C#,.net,Linq,Entity Framework,Linqpad,在LINQPad中执行以下查询时: var innerquery = Bills.Where(e => e.id == 15); var entity = Customer .Join(applications, cust => cust.cust_id, app => app.cust_id, (cust, app) => new { Customer = cust, application = app }) .Join(advices, c

在LINQPad中执行以下查询时:

var innerquery = Bills.Where(e => e.id == 15);

var entity = Customer
    .Join(applications, cust => cust.cust_id, app => app.cust_id,
    (cust, app) => new { Customer = cust, application = app })

    .Join(advices, cust => cust.application.app_id, sa => sa.app_id,
    (cust, sa) => new { Customer = cust, advice = sa })

    .Where(x => x.advice.status_id == 4)
    .Where(e => innerquery.Any(a => a.com_id == e.advice.application.com_id)) // exception at this line
    .Where(e => innerquery.Any(a => a.fnd_id == e.advice.application.fnd_id))
    .Select(x => x.Customer.Customer.cust_id);

entity.Dump();
它以LINQPad中的异常结束:

“LINQPad.User.appSancAdvice”不包含“application”的定义,并且找不到接受“LINQPad.User.appSancAdvice”类型的第一个参数的扩展方法“application”(按F4添加using指令或程序集引用)

幕后的简单逻辑是只选择客户

  • 具有批准的建议(状态_id=4);及
  • 在申请表中有与特定法案(innerquery)相同的委员会(com_id)和基金(fnd_id)的记录


  • 客户
    实体与
    应用程序相关


  • 应用程序
    实体与
    建议


  • 但是,
    应用程序
    实体与
    票据

更新
(表结构)

客户
客户id

应用程序
应用程序id
客户id
com_id
fnd_id

建议
应用程序id
身份证

账单
账单id
com_id

fnd_id

它得到了解决。错误线路的正确导航路线为:

.Where(e => innerquery.Any(a => a.com_id == e.customer.application.com_id)) // exception at this line
.Where(e => innerquery.Any(a => a.fnd_id == e.customer.application.fnd_id))

该错误是由
e.advice引起的。应用程序

可能有助于在此处查看基础表结构。@Moo Juice请参见上面的更新。另外-LinQPad的“SQL”结果在生成的SQL中显示了什么?@Moo Juice as最终出现错误,它没有显示生成的t-SQL。问题已解决。该行的正确格式应该是
。其中(e=>innerquery.Any(a=>a.com\u id==e.customer.application.com\u id))