SQL Query到LINQ语法使用不存在和连接

Neo*_*Neo 8 c# linq sql-server

我的SQL查询就像下面的SQL工作正常我需要将其转换为LINQ语法

SQL-

SELECT [Key], Id
FROM LocalizationKeys AS lk
WHERE NOT EXISTS (SELECT 1
                  FROM Languages AS l
                  JOIN LocalizationValues AS lv ON l.Id = lv.LanguageId
                  WHERE l.Title = 'en-US' AND lv.LocalizationKeyId = lk.Id)
Run Code Online (Sandbox Code Playgroud)

我尝试过LINQ语法

var result = 

(from lk in localizationKey    
where !(from l in lang
        join lv in localizationValue on l.Id equals lv.LanguageId
        where l.Title == "en-US" && lv.LocalizationKeyId == lk.Id select 1).FirstOrDefault()   

 select lk).ToList();
Run Code Online (Sandbox Code Playgroud)

得到错误:

接线员'!' 不能应用于'int'类型的操作数

我犯错的任何线索?

Alp*_*lan 2

你可以这样尝试:

(from lk in localizationKey    
where (from l in lang
        join lv in localizationValue on l.Id equals lv.LanguageId
        where (l.Title == "en-US" && lv.LocalizationKeyId == lk.Id)   
       select l).FirstOrDefault() == null
 select lk).ToList();
Run Code Online (Sandbox Code Playgroud)

或者

(from lk in localizationKey    
where !(from l in lang
        join lv in localizationValue on l.Id equals lv.LanguageId
        where !(l.Title == "en-US" && lv.LocalizationKeyId == lk.Id) 
        select l).FirstOrDefault().Any()
 select lk).ToList();
Run Code Online (Sandbox Code Playgroud)