我有一个涉及到用户
和用户项目
之间关系的技术问题。 UserProjects.UserId
引用了Users.UserId
我想找到在UserProjects
中的User
,并且UserProject
具有UserProjects.ProjectId == 4
。然后将其余User
与此表合并。
实际上,我想更改UserProject = 4
的一些User
属性。
在MSSQL中,只是为了测试,我有以下查询
Select U.UserId
from Users U
Join UserProjects UP
On U.UserId = up.UserId
Where up.ProjectId = 4
Union
Select U.UserId From Users U
我没有改变任何属性。无论如何,结果显示了所有用户,就像应该的那样。
但是现在使用相同的查询更改属性后,结果显示比我拥有的用户更多。
var usrs = ((from users in context.Users
join userProj in context.UserProjects
on users.UserId equals userProj.UserId
where userProj.ProjectId == projectId
select new ProjectUsersDTO
{
UserName = users.Name,
Rate = users.RatePerHour,
UserId = users.UserId,
alreadyInProject = true
})
.Union(from users in context.Users
select new ProjectUsersDTO
{
UserName = users.Name,
Rate = users.RatePerHour,
UserId = users.UserId,
alreadyInProject = false
}))
.ToList();
return usrs;
当UNION不允许重复时会发生什么情况?
非常感谢!