SQL Query to LINQ syntax using not exist and join SQL Query to LINQ syntax using not exist and join sql-server sql-server

SQL Query to LINQ syntax using not exist and join


You can try like this:

(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();

or

(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();


Try this:

(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();


I think your original query is fine you just need to add another pair of brackets in the where clause:

(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).Any()) select lk).ToList();