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

本文关键字:类型 GroupJoin 子句 失败 调用 一个 表达式 不正确 连接 | 更新日期: 2023-09-27 18:18:36

我试图左连接多个表在linqtoentities与多个条件,但我无法让它操作甚至两个表。错误是"连接子句中一个表达式的类型不正确"。,代码为:

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)。

尽管发现了很多关于这个错误的报告,但我找不到任何提供我需要的洞察力的帖子,所以任何帮助都会很感激

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

如果其他人看到这篇文章并有同样的问题,我设法解决了它。

为了使它工作,我在末尾添加了select new { row.MeetingID, s.EmailLogID };

我不知道为什么没有完成编写查询尚未使编译器认为这是一个数据类型错误,而不是通常的"查询体必须以选择子句或组子句结束",虽然,想知道为什么。