代码之家  ›  专栏  ›  技术社区  ›  majkinetor

使用实体从存储过程中获取@return_值

  •  0
  • majkinetor  · 技术社区  · 14 年前

    我想得到 @Return_Value 来自使用实体的存储过程。

    假设存储过程是:

    CREATE PROCEDURE GetEmployes( @whereSql nvarchar(512) )
    AS
    BEGIN
        set @tsql = 'select * from Employes where '  + @whereSql
        exec(@tsql)
        return 5
    END
    

    实体导入为

    ObjectResult<Employe> GetEmployes(...)
    

    这就是我需要的。

    int return_value;
    var result = db.GetEmpleys("name = .. AND ...", out return_value);
    if (return_value == 5)
         // do something on this exit code
    List<Employe> result.ToList<Employe>() ;
    

    我正在使用Visual Studio 2008

    蒂亚

    1 回复  |  直到 14 年前
        1
  •  1
  •   Craig Stuntz    14 年前

    int返回值的概念是特定于SQL Server的。我不相信EF,这是设计为数据库服务器不可知,支持它。

    所以必须使用正确的输出参数,而不是int返回值。这不应该是个问题。最坏的情况是,将该进程包装在另一个进程中,该进程将第一个进程的int返回值作为第二个进程的输出返回。

    最后,我希望这只是一个示例,因为您的演示过程引入了一个SQL注入漏洞。