首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LinQ:多列标识符的多个联接

LinQ:多列标识符的多个联接
EN

Stack Overflow用户
提问于 2016-06-08 09:35:19
回答 1查看 48关注 0票数 0

你能帮我理解这条错误信息吗?我肯定做错了什么?

联接子句中的一个表达式的类型不正确。类型推断在调用'Join'.时失败

代码语言:javascript
复制
Res.AddRange(from jh in db.Job
             join jd in db.JobDetail on jh.number equals jd.number
             join js in db.JobSection on new { jd.number, jd.ref, jd.product } equals new { js.number, js.ref, js.Product }
             join oh in db.Order on jd.ref equals oh.ref
             join bh in db.Buyer on jh.id equals bh.id
             where jh.dateModify >= InputDate
             select jh);

错误来自于这一行

代码语言:javascript
复制
join js in db.JobSection on new { jd.number, jd.ref, jd.product } equals new { js.number, js.ref, js.Product }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-08 09:57:32

在Evk的帮助下(见注释),我找到了一个解决方案

  1. 我需要命名我的变量
  2. 我需要尊重这种类型(即使是可空的)

所以正确的解决办法是

代码语言:javascript
复制
Res.AddRange(from jh in db.Job
             join jd in db.JobDetail on jh.number equals jd.number
             join js in db.JobSection on new { a = jd.number, b = (int?)jd.ref, c = jd.product } equals new { a = js.number, b = js.ref, c = js.Product }
             join oh in db.Order on jd.ref equals oh.ref
             join bh in db.Buyer on jh.id equals bh.id
             where jh.dateModify >= InputDate
             select jh);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37698692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档