在LINQ-SQL中进行此查询?

时间:2013-01-29 16:44:46

标签: c# asp.net sql linq

我有EmployeesGroupsEmployeeGroupFilters

EmployeeGroupID外键关系。

EmployeeGroupFilter有一个员工和组ID。每位员工都可以过滤他们不希望在日历中看到的组。

因此,如果存在EmployeeGroupFilter,该员工将不会看到该组。

我需要一个返回IEnumerable组的查询,该组将是对员工可见的组。

例如:从不在currentEmployee的组过滤器中的组中选择所有组。

现在我可以得到所有员工过滤器:

public static IEnumerable<EmployeGroupFilter> GetAllByEmployee(
int employeeID)
{
    KezberPMDBDataContext db = new KezberPMDBDataContext();

    return from p in db.EmployeGroupFilters
           where p.EmployeID == employeeID
           select p;
}

我需要类似的东西:

public static IEnumerable<Group> GetAllVisibleEmployeeGroups(
int employeeID)
{
    KezberPMDBDataContext db = new KezberPMDBDataContext();

    return from p in db.Groups
           .......
           select p;
}

1 个答案:

答案 0 :(得分:3)

return from p in db.Groups
where !p.EmployeGroupFilters.Any(fil=>fil.EmployeeId == employeeID)
           select p;