2010-05-20 51 views
3

我想在两个表上执行左外连接,但我只想返回第一个表的第二个表没有记录的结果(空值)。LINQ,左连接,仅获取在连接表中的空位

var agencies = from a in agencyList 
          join aa in joinTable 
          on a.AgencyId equals aa.AgencyId into joined 
          from aa in joined.DefaultIfEmpty() 
          where aa == null) 
          select a; 

但是,这并不排除AA的非空值,并返回所有的记录一样的,就好像“其中aa == NULL”是不存在。

任何帮助表示赞赏。谢谢。

回答

1

什么:

var agencies = from a in agencyList 
          where (from aa in joinTable where aa.AgencyId == a.AgencyId select aa).Count() == 0 
          select a; 
+0

感谢。两种解决方案实际上都是正确我的查询来检索我的连接表是不正确的。谢谢。 – kmehta 2010-05-20 19:26:34