将 SQL 转换为 LINQ 查询

Posted

技术标签:

【中文标题】将 SQL 转换为 LINQ 查询【英文标题】:Convert SQL to LINQ Query 【发布时间】:2012-02-17 19:11:56 【问题描述】:

我有以下 SQL 查询,我需要在 LINQ 中使用它,我尝试了几件事,但无法正常工作。

这是 SQL 查询

SELECT     ST.Description, ST.STId, COUNT(SI.SIId) AS Expr1
FROM         BP INNER JOIN
                      MbrBP ON BP.BPId = MbrBP.BPId INNER JOIN
                      SI ON BP.BPId = SI.BPId RIGHT OUTER JOIN
                      ST ON SI.STId = ST.STId
WHERE     (BP.CountryId = 1) AND (BP.RegionId = 1) AND (MbrBP.MemberId = 1)
      AND (SI.IsActive = 1)
GROUP BY ST.Description, ST.STId
UNION 
SELECT      ST.Description, ST.STId, COUNT(SI.STId) AS Expr1
FROM         SI RIGHT OUTER JOIN
                      ST ON SI.STId = ST.STId
GROUP BY ST.Description, ST.STId

【问题讨论】:

你试过什么?你的问题是什么(转换)? 仅供参考,它是 LINQ - 语言集成查询。不是 LinQ。最近经常看到这种情况。 看看SQL queries in LINQ。它提供了如何将常见的 SQL 查询转换为 LINQ 语法的示例。 Sql 有时更好用。 @Mardo 恕我直言,对于了解 SQL 的人来说,SQL 总是更好。只是说。 【参考方案1】:

你试过 Linqer http://www.sqltolinq.com

一个 SQL-> LINQ 转换器..

或 LINQPad http://www.linqpad.net/

【讨论】:

@GaneshKamath-'CodeFrenzy' 我下载并尝试了您的项目。但它卡住了我无法将我的 sql 查询粘贴到 SQL 字符串输入框中。你能帮帮我吗? @Sherlyn,我已经很久没有从事那个项目了。那个项目是不完整的。请 fork 一份并根据您的需要进行修改。它至少需要 Entity framework 6、Visual Studio 2015 和 Microsoft Visualization and Modeling SDK。抱歉,我现在只能提供这些了。

以上是关于将 SQL 转换为 LINQ 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何将 linq 查询转换为 SQL 查询?

将 SQL 子查询转换为 Linq 查询

协助将 SQL 查询转换为 LINQ 查询

将 SQL 原始查询转换为 Linq

将sql代码转换为linq(内连接查询)

将 SQL 转换为 LINQ 查询