1

我有一个要转换为 Linq 的 sql 查询

Select b.title
from TableA as a
inner join TableB as b
on a.Email=b.Email
where a.Title<>b.Title 

我试过的查询是

var query =from s in TableA
          join r in TableB
          on r.Email equals s.Email

但无法复制可能包含许多列的 where 子句

我的要求是我需要比较主键列上的 2 个表,然后获取其他不匹配的列值

4

1 回答 1

4

您需要在查询末尾进行“选择”,并且需要以正确的顺序获取输入:

var query = from s in TableA
            join r in TableB on s.Email equals r.Email
            where s.Title != r.Title
            select s.Title;

对于多个列,使用匿名类型:

var query = from s in TableA
            join r in TableB 
              on new { s.Email, s.Foo } equals new { r.Email, r.Foo }
            where s.Title != r.Title
            select s.Title;
于 2012-08-02T09:07:28.860 回答