【问题标题】:How to fetch return value from stored procedure in entity framework?如何从实体框架中的存储过程中获取返回值?
【发布时间】:2016-07-29 19:33:19
【问题描述】:

我有一个存储过程,它将新记录从服务插入到数据库或更新现有记录。 但是如果插入/更新成功,我需要显示 true,如果失败,我需要显示 false 作为响应。

所以在我从 EF 调用的存储过程中

result = database.usp_sp_name(parameters);
if (result==0)
    return true;
else 
    return false;

我尝试了上面的代码,因为我在 MSDN 网站上读到,如果成功交易意味着,结果将为 0。但即使它的插入记录或更新记录,我得到的响应为 false。

【问题讨论】:

标签: c# sql-server entity-framework


【解决方案1】:

在您的代码中,创建一个 bool 来保存您的 storedproc 的结果,如果您的 storedproc 的结果为 1,则返回 true。否则为 false。

bool result = _entites.StoredProc(parameters);
return (result == 1) ? true: false;

但是在你的存储过程中 您应该创建一个返回这样的值的过程

CREATE PROCEDURE [dbo].[StoredProc]
    @parameter
AS
BEGIN
    DECLARE @result int
    DECLARE @param nvarchar(255)
    SET @param = @parameter

    INSERT INTO (field1) VALUES (@param)

    IF @@ERROR = 0
        SET @result = 1
    ELSE 
        SET @result = 0

RETURN @result

如果 T-SQl 语句没有遇到错误,@@Error 返回 0。您可以使用它将结果设置为 1 或 0。有关@@error 的更多信息,请参阅此链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多