使用Entity从存储过程中获取@Return_Value

时间:2010-03-09 10:49:31

标签: entity-framework

我希望使用实体从存储过程中获取@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

TIA

1 个答案:

答案 0 :(得分:1)

int返回值的概念是特定于SQL Server的。我不相信设计为与DB服务器无关的EF支持它。

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

最后,我希望这只是一个例子,因为你的demo proc引入了一个SQL注入漏洞。