我正在尝试使用linq中的多个字段进行带有连接的select查询,
但是编译器在连接时给我以下错误:-join子句中表达式之一的类型不正确
(from allTeamRoles in GetAllTeamRoles()
join includedRoles in _jobManagerClient.GetAllJobRoles().Where(x => x.JobId == jobId)
on new { allTeamRoles.Id, allTeamRoles.TeamId } equals new { includedRoles.RoleId, includedRoles.TeamId }
select allTeamRoles).ToList();
有人可以对此发表看法吗,这句话有什么问题,谢谢。
最佳答案
连接键必须具有相同的属性,但是在您的情况下,左键具有Id,TeamId
属性,而右键具有RoleId,TeamId
属性。因此,您必须将Id
重命名为RoleId
,或者相反。
(from allTeamRoles in GetAllTeamRoles()
join includedRoles in _jobManagerClient.GetAllJobRoles().Where(x => x.JobId == jobId)
on new { allTeamRoles.Id, allTeamRoles.TeamId } equals new { Id = includedRoles.RoleId, includedRoles.TeamId }
select allTeamRoles).ToList();
关于c# - 使用多个字段加入linq查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32060848/