如何使LINQ to SQL中的JOIN等效于Not Equals

时间:2015-02-03 18:20:06

标签: c# sql sql-server linq linq-to-sql

我有一张桌子: 年|期间|帐户

在新的一段时间内,我想获得一个新帐户列表和上一期间也存在的帐户列表。

上一期间的帐户:

    bs.DataSource = from c in accountsToImport
             join p in accountsToImport on c.Account equals p.Account
             where c.Year == year && c.Period == period
             && p.Year == priorYear && p.Period == priorPeriod
             select c;
    return bs;

但是,我无法弄清楚如何使用LINQ-> SQL获得“不等于p.account ”的等价物。有效的SQL命令:

select * from tsr_accountsToimport as cper
inner join tsr_accountstoimport as pper
on cper.account <> pper.account
where 
cper.year = 2015
and cper.period = 4
and pper.period = 3

非常感谢任何获得LINQ语法的帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试使用SelectMany而不是加入。

from c in accounts
from p in accounts
where c.Account != p.Account