DBML - 存储过程建模失败

时间:2013-08-16 19:08:38

标签: linq-to-sql stored-procedures

我有一个存储过程,当我注释掉一个简单的IF语句时,模型很好:

IF LEN(@myVariable) > 0
    BEGIN
        SET @myVariable = SUBSTRING(@myVariable, 1, LEN(@myVariable)-1)
    END

如果我没有注释掉这一行,我会收到错误:

  

无法检测到以下存储过程的返回类型。在“属性”窗口中设置每个存储过程的返回类型。 dbo.my_stored_procedure

为什么此语句会导致返回类型的自动生成失败?

当我注释掉这行代码时,我得到了我期望的返回类型及其所有属性(在DBML中自动建模)

我缺少一个设置吗?

提前致谢...

1 个答案:

答案 0 :(得分:0)

感谢格特让我朝着正确的方向前进。更改语句后,存储过程正确建模,没有任何问题:

IF LEN(@myVariable) > 0
    BEGIN
        SET @myVariable = SUBSTRING(@myVariable, 1, LEN(@myVariable)-1)
    END

为:

IF LEN(@myVariable) > 0
    BEGIN
        SET @myVariable = LEFT(@myVariable, NULLIF(LEN(@myVariable)-1, -1))
    END