我试图在具有多个条件的linqtoentities中连接多个表,但是我甚至无法让它在两个表上运行。错误是' join子句中某个表达式的类型不正确。'代码是:
var listToSend = from row in meetingEmails
join s in sentEmail on new {a = (int) row.StaffID, b = (int) row.MeetingID} equals new {a = (int) s.SentToUserID, b = (int) s.CaseID}
比较类型中包含的所有四列都是不可为空的int(名称和类型声明是尝试解决此问题)所以我很难理解为什么它的类型有问题。
我能看到的唯一区别是右半边是直接来自数据库,左边是通过先前的查询运行,只有某些字段输出,但我不认为这会产生影响,因为数据类型连接标准中的字段仍然被编译器一致地识别(作为整数)。
尽管发现了很多关于此错误的报告,但我无法找到任何能够提供我需要的洞察力的帖子,所以任何帮助都会受到赞赏
答案 0 :(得分:0)
如果其他人遇到此帖并且遇到同样的问题,我设法解决了这个问题。
为了使其有效,我在最后添加了select new { row.MeetingID, s.EmailLogID };
。
我不确定为什么不完成编写查询但编译器认为它是数据类型错误而不是通常的'查询主体必须以select子句或组子句结束'但是想知道这是为什么。