C# Where子句中的LINQ子查询在LINQPad中返回错误
在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
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))