我需要一些关于如何实现以下内容的LINQ建议(甚至一般建议):
基本上,我有3个实体:项目 - 员工项目 - 员工(分别为1到多人和多对1关系),即员工可以分配到多个项目,项目可以有很多员工和我们所有的住房在EmployeeProjects中。
我想选择一些员工,看看他们是否存在于某个项目中,如果他们不存在于该项目中,我想添加它们。
到目前为止,我正在考虑这样的事情(任何和所有建议都赞赏!):
var existingEmployees = new List<string>();
foreach(var employeeProject in _project.EmployeeProjects)
{
if (employeeProject.Employee != null)
existingEmployees .Add(employeeProject.Employee.EmployeeId);
}
foreach(var employee in GetSelectedEmployees())
{
if (!existingEmployees.Contains(employee.EmployeeId))
{
_project.AddEmployee(employee);
}
}
答案 0 :(得分:3)
foreach( var employee in GetSelectedEmployees()
.Except(_project.EmployeeProjects.Employees))
_project.AddEmployee(employee);
现在,如果Project有AddEmployees(IEnumerable<Employee>)
方法:
_project.AddEmployees(GetSelectedEmployees()
.Except(_project.EmployeeProjects.Employees));