无法将SQL转换为LINQ [英] Unable to Convert SQL to LINQ
本文介绍了无法将SQL转换为LINQ的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是LINQ的新手。我有一个下面的SQL查询,我正在尝试获得LINQ等效语句。
I am new to LINQ. I have a folowing SQL query and I am trying to get LINQ equivalent statement.
SELECT orgNm.OrgNm
FROM OrgNm orgNM
INNER JOIN ProspectClient pc
ON orgNM.OrgNmTypeId = 2
AND pc.ProspectClientID = orgNm.OrgId
AND orgNm.OrgId NOT IN (SELECT CloneOrgId FROM ClonedOrgInfo)
AND orgnm.orgId NOT IN (SELECT RelatedOrgId FROM OrgcRlshp)
谢谢...
AJ
已添加代码块,''SQL ''标签已添加[/ Edit]
Thanks...
AJ
Code block added, ''SQL'' tag added[/Edit]
推荐答案
让我们澄清,因为你在JOIN ON子句中添加了一些内容,并不意味着它属于那里。您的查询应该是这样的:
Let''s clarify, just because you add something in the JOIN ON clause, does not mean it belongs there. Your query should be this one:
SELECT orgNm.OrgNm
FROM OrgNm orgNM
INNER JOIN ProspectClient pc ON pc.ProspectClientID = orgNm.OrgId
WHERE orgNM.OrgNmTypeId = 2
AND orgNm.OrgId NOT IN (SELECT CloneOrgId FROM ClonedOrgInfo)
AND orgnm.orgId NOT IN (SELECT RelatedOrgId FROM OrgcRlshp)
以下是三个步骤的可能解释:
Here is one possible interpretation in three steps:
var re = from o in OrgNm
join pc in ProspectClient on o.OrgId = pc.ProspectClientID
where o.OrgNmTypeId = 2;
var ex = ClonedOrgInfo.Select(x => x.CloneOrgId).Union(OrgcRlshp.Select(y => y.RelatedOrgId));
var result = re.Where(r => !ex.Contains(re.OrgId));
由于LINQ to SQL使用延迟执行,因此使用的步数无关紧要。
Since LINQ to SQL is using deferred execution, it does not matter how many steps you use.
非常感谢ZoltánZörgő...你的解决方案解决了我的问题!
因为我是LINQ的新手,可以你建议我一个更好的方法/知识库,我可以利用我的LINQ编码技巧吗?
问候
AJ
Thanks a ton, Zoltán Zörgő... Your solution solves my question!
As I am new to LINQ, could you suggest me a better approach/knowledge base where I can leverage my LINQ coding skills?
Regards
AJ
这篇关于无法将SQL转换为LINQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文