c# - 当类型相同时,连接子句中的一个表达式的类型不正确

标签 c# linq

这让我感到困惑,我在以下 LINQ 中的连接中出现标题错误:

var r = (from k in location.tblKeyAccountInfoes
                     join l in location.tblLocations
                     on new { k.MemberID, k.LocationID } equals
                     new {l.MemberId, l.LocationId }
                     where k.MemberID == memberid && k.UserName == username
                     select l.LocationName);

            return r.ToString();

但是,MemberId 和 LocationId 的类型相同,所以我不确定我做错了什么。

感谢收到的任何指示。

最佳答案

MemberID 和 LocationID 的类型可以相同,但它们也必须具有相同的名称

在您的示例中,其中一个具有 ID(大写 D),另一个具有 Id(小写 d)。这足以使匿名类型成为独立的类型。

您可以通过明确指定名称来解决此问题,例如:

 join l in location.tblLocations
 on new { k.MemberID, k.LocationID } equals
 new { MemberID = l.MemberId, LocationID = l.LocationId }

关于c# - 当类型相同时,连接子句中的一个表达式的类型不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3769098/

相关文章:

c# - Linq 查询中 OrderBy、Where、Select 的排序

c# - 如何使用 LINQ 查找和删除集合中的重复对象?

c# - Resharper:vars

c# - 为 csproj 禁用发布配置

c# - 仅以 SA 用户身份运行的 Azure SQL 数据库存储过程

javascript - 是否有类似于 JavaScript 中的 .Map() 的 C# 函数?

c# - Entity Framework 列表包含在 lambda 中

c# - 控制台窗口的输出是否有限制?

c# - 当每个任务都依赖于特定事件时的任务链

c# - linq puzzle ...等同的语法...不等同的结果!