Использование Entity Framework Core 3.1 У меня есть следующие объекты:
public class Project {
public Int32 ProjectId { get; set; }
public ICollection<Member> Members { get; set; }
}
public class Role {
public Int32 RoleId { get; set; }
public ICollection<Member> Members { get; set; }
}
public class User {
public Int32 UserId { get; set; }
public ICollection<Member> Members { get; set; }
}
public class Member {
public Int32 ProjectId { get; set; }
public Int32 UserId { get; set; }
public Int32 RoleId { get; set; }
public Project Project { get; set; }
public User User { get; set; }
public Role Role { get; set; }
}
Я получаю проекты, в которых пользователь с UserId=1
является членом:
projects
.SelectMany(y => y.Members, (Project, Member) => new { Project, Member })
.Where(y => y.Member.UserId == 1)
.Select(y => new {
ProjectId = y.ProjectId,
RoleId = y.Member.RoleId,
UserId = y.Member.UserId
});
Но мне нужно чтобы получить все проекты, пользователь является участником или не участником.
В проектах, где пользователь не является участником, я бы установил RoleId
и UserId
на null
.
По сути, я думаю, что это будет левое соединение ...
Как это можно сделать с помощью лямбда-выражения в Linq to Entities?