![](/img/trans.png)
[英]ASP.NET MVC4 return output from a stored procedure with Entity Framework
[英]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.