【问题标题】:Convert linq statement to sql将linq语句转换为sql
【发布时间】:2013-08-13 02:32:05
【问题描述】:

我正在弃用从 linq 编码回到 sql 存储过程的项目。 (我的公司拒绝升级我们的 sql 2000 数据库。)我被困在试图将其转换为 sql 的当前代码上。有人可以帮忙吗?

Dim ICD9Codes = (
From a In Linq2Db.ICD9Codes
Where IIf(String.IsNullOrEmpty(Variable1), 1 = 1, a.Code.StartsWith(Variable1))
Select a).ToList

我被困在“IIF”语句上,如果值不为空,则“where”子句只使用 if 语句。

【问题讨论】:

  • 如果您使用 linqpad 对您的数据库运行该查询,您可以切换到 SQL 选项卡并查看该语句实际生成的内容,然后您可以根据需要进行修改。

标签: sql vb.net linq tsql


【解决方案1】:

要将其转换为 SP,您需要将 Variable1 设为参数。 IIf 部分可以在 WHERE 子句中解决,如下所示:

CREATE PROCEDURE [procedure_name] @variable1 varchar(50)
AS
BEGIN
    SELECT *
    FROM ID9Codes
    WHERE LEN(LTRIM(RTRIM(ISNULL(@variable1, '')))) = 0
        OR Code lIKE @Variable1 + '%'
END

【讨论】:

  • 完美运行...非常感谢!我的原始代码实际上比我给出的这个 sn-p 复杂得多,但是这最后一段帮助我解决了整个 Linq 查询。再次感谢您!
猜你喜欢
  • 2013-02-15
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多