【发布时间】:2023-03-31 18:29:01
【问题描述】:
我正在尝试使用into 而不是group by 对具有一对多关系的多个表执行组连接。但有些不对劲。我得到用户拥有的每个角色的重复记录。
from compUsr in Repository.All<CompanyUser>()
join usr in Repository.All<User>() on compUsr.UserId equals usr.Id
join usrRole in Repository.All<UserRole>() on usr.Id equals usrRole.UserId
join role in Repository.All<Role>() on usrRoles.RoleId equals role.Id into roles
select new UserDTO()
{
Id = usr.Id,
Email = usr.Email
Roles = roles.Select(r => new RoleDTO()
{
Id = r.Id
})
}
如果我删除 Role 表上的联接,并将 into 语句放在 UserRole 上,分组就像一个魅力,但 UserRole 只是一个链接表,所以 Role 表是我感兴趣的表。任何想法如何尽可能简单地分组?谢谢!
【问题讨论】:
标签: c# entity-framework linq-to-entities