在LINQ中按列加入和区分

时间:2016-02-12 11:29:09

标签: c# linq

我有两种关系:UsersUserProjects

我想检查哪个用户已经在项目中。到目前为止它是这样的:

 var usrs = (from users in context.Users
                        join userProj in context.UserProjects
                        on users.UserId equals userProj.UserId into gj
                        from subuserProject in gj.DefaultIfEmpty()
                        select new ProjectUsersDTO
                        {
                            UserName = users.Name,
                            Rate = users.RatePerHour,
                            UserId = users.UserId,
                            alreadyInProject = subuserProject == null || subuserProject.ProjectId != projectId ? false : true
                        })
                      .ToList();

问题是我想让它们与众不同。现在我收到一位用户alreadyInProject == truealreadyInProject == false

1 个答案:

答案 0 :(得分:0)

如果您正在检查某个特定项目,那么您不需要加入所有项目 - 只需在加入之前过滤用户项目:

R

生成的查询看起来像

A[5]