LINQ中的减法

时间:2011-05-20 07:18:54

标签: sql linq linq-to-entities

我有两张桌子: 带有ID,Name,...列的“人员” 带有PersonnelID的“User”(“Personnel”中ID列的FK),用户名,密码列

问题是如何查询人员实体在“用户”表中没有使用他们的ID,我的意思是来自“人员”的实体在“用户”表中没有记录?

首先,我想创建一个包含每个“Personnel”实体的视图,其中包含“User”表中的记录并从所有Personnel实体中减去此视图,这是解决方案,但我不知道如何在Linq中减去两个视图< / p>

我将此查询用于视图:

from p in ObjectContext.personnels
join u in ObjectContext.users on p.ID equals u.PersonnelID 
select p;

这是解决方案吗?如果是,我该如何减去两个视图?

或者有更好的方法吗?

PS !!:抱歉我的英文不好:D

1 个答案:

答案 0 :(得分:3)

  
    

问题是如何在“用户”表

中查询人员实体的ID未被使用   

答案:

from p in ObjectContext.personnels
where !ObjectContext.users.Any(u => u.PersonnelID == p.ID)
select p;

虽然,您可能希望限制您提取的列:

from p in ObjectContext.personnels
where !ObjectContext.users.Any(u => u.PersonnelID == p.ID)
select new { p.Id, p.Name, etc };