本文介绍了无法将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 orgnmId 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 orgnmId 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
发布评论