我的大脑现在似乎很糟糕!我正在使用LINQ to Entity,我需要从另一个表中不存在的表中获取一些数据。LINQ to Entity,加入NOT IN表
例如:我需要TABLE A中不存在的groupID,groupname和groupnumber,它们不会存在于TABLE B中。groupID将与其他相关信息一起存在于TABLE B中。这些表格没有任何关系。在SQL这将是非常简单的(还有一个更优雅和高效的解决方案,但我要画什么,我需要一个图片)
SELECT
GroupID,
GroupName,
GroupNumber,
FROM
TableA
WHERE
GroupID NOT IN (SELECT GroupID FROM TableB)
有一个简单/优雅的方式来做到这一点使用实体框架/ LINQ到实体? 现在我有一堆查询命中数据库,然后比较等。这很麻烦。
如果内部子句是'y => y.GroupID == x.GroupID'? (如果'GroupB'中有'TableB'中的任何项目,则返回false) – Hannele 2013-10-03 18:43:30
@Hannele技术上它是相同的,可能更具可读性。出于某种原因,我被构建为向后执行布尔逻辑。 – Nix 2013-10-04 12:07:48
我同意Hannele,我认为它应该是Where(x =>!context.TableB.Any(y => y.GroupID == x.GroupID)) – Sam 2016-03-03 08:12:41