繁体   English   中英

MVC4将带有linq的存储过程输出返回到sql

[英]MVC4 return a stored procedure output with linq to sql

我在ASP.NET MVC4下的线程下有类似的问题, 使用实体框架从存储过程返回输出

我尝试过同样的事情,但出现错误:

无法将void分配给上的隐式类型的局部变量

这是我的程序:

create PROCEDURE [dbo].[usp_UpdateValuesInTables]  
(  
    @s_clientid int,
    @success int output
)  
AS  
BEGIN  
    Begin Try
        BEGIN TRAN  
            ---- sql statements
        COMMIT TRAN 
        set @success=1 
    End Try
    Begin Catch
        ROLLBACK TRAN  
        set @success=0  
    End Catch
END 

和C#代码

int? success = null;
var successCode = Context.usp_UpdateValuesInTables(Convert.ToInt32(obj.SourceClientDropDown),ref success);

为什么会出现该错误?

如果我尝试用int替换var ,那么我会报错

无法将类型void隐式转换为int

尝试这个:

int? success = null;
Context.usp_UpdateValuesInTables(Convert.ToInt32(obj.SourceClientDropDown),ref success);
var successCode = success; //success is the returned result.

您的问题是存储过程实际上没有返回值,但是Entity Framework无法Void返回。 您需要确保在存储过程中使用SET NOCOUNT ON ,以便Entity Framework可以确定Void返回并在其中映射默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM