使用不存在,并加入SQL查询来LINQ语法 [英] SQL Query to LINQ syntax using not exist and join
本文介绍了使用不存在,并加入SQL查询来LINQ语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的SQL查询类似下面的工作在SQL
罚款,我需要将其转换为LINQ语法
My SQL query is like below working fine in SQL I need to convert this to LINQ syntax
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)
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();
获取错误:
运算符'!'不能应用于类型为INT
Operator '!' cannot be applied to operand of type 'int'
任何线索在哪里出错了?
Any clue where I made mistake?
推荐答案
您可以尝试这样的:
(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();
或
(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();
这篇关于使用不存在,并加入SQL查询来LINQ语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文