Linq查询-不存在语句



我有类:

class Person
{
    private int _personID;
    private string _fullName;
    ....
    ....
}
class Employee : Person
{
    private List<Project> _projectList;
    ....
    ....
}
class Project
{
    private string _projectCode;
    private List<Employee> _employeeList;
    ....
    ....
}

现在,我需要获取与_personID==0的Employee在同一项目中工作的所有Employees。受雇者ProjectList只包含一个项目。

我需要得到所有员工的PROJECT->每个员工在他的_projectList中都有相同的_projectCode。这应该在LINQ中完成。

我可以在SQL中做到这一点,但现在我使用的是Db4o对象数据库和LINQ,我真的不知道如何处理这种情况。我会感谢任何点击。(对不起我的英语)。

首先-如果Employee.ProjectList只包含一个项目,则考虑不使用集合来保留此项目。

查询是:

var employees = Projects.Where(p => p.EmployeeList.Any(e => e.PersonID == id))
                        .SelectMany(p => p.EmployeeList)
                        .Where(e => e.PersonID != id)
                        .Distinct();

UPDATE:在查询语法中,DistinctAny并没有等价物,但这里的查询与上面的查询相同,具有混合语法:

var employees = (from p in Projects
                 where p.EmployeeList.Any(e => e.PersonID == id)
                 from e in p.EmployeeList
                 where e.PersonID != id
                 select e).Distinct();

相关内容

  • 没有找到相关文章

最新更新