LINQ - 哪里不存在

46 linq exists

LINQ中以下语句的等价物是什么:

Select t1.appname, t1.julianDte, t1.cat 
From table1 t1 
Where NOT EXISTS 
   ( Select * 
     from table t2 
     where t1.cat = t2.cat AND t2.julianDte < t1.julianDte )
Run Code Online (Sandbox Code Playgroud)

Amy*_*y B 61

试试这种Not Any模式.

var query = db.table1
.Where(t1 => !db.table2
  .Any(t2 => t2.cat == t1.cat && t2.julianDte < t1.julianDte)
);
Run Code Online (Sandbox Code Playgroud)


Bry*_*tts 11

查询@David B答案的语法版本(使用!Any to all to All):

from t1 in db.Table1
where db.Table2.All(t2 => t1.cat != t2.cat || t2.julianDte >= t1.julianDte)
select new
{
    t1.appname,
    t1.julianDte,
    t1.cat
};
Run Code Online (Sandbox Code Playgroud)

  • 或者倾向于干扰索引的使用.找到居住在第三大街上并且是管道工的人......在这种情况下,他们居住的街道上的人的索引是非常有用的.找到居住在第三街的人或管道工......在这种情况下,他们住在街道上的人的索引就没那么有用了. (12认同)
  • 出于好奇,"OR"会比"AND"更危险吗? (2认同)