繁体   English   中英

Linq查询-不存在语句

[英]Linq queries - not exists statement

我有课:

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一起在同一项目上工作的员工。Employee.ProjectList恰好包含一个项目。

而且我需要获得对所有员工都在工作的项目->每个员工的_projectList中都具有相同的_projectCode。 这应该在LINQ中完成。

我可以在SQL中执行此操作,但是现在我正在使用Db4o对象数据库和LINQ,但我真的不知道如何处理这种情况。 如有任何点击,我将不胜感激。 (对不起我的英语不好)。

首先-如果Employee.ProjectList恰好包含一个项目,则考虑不要使用collection来保留该项目。

查询是:

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

更新:查询语法中没有与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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM