我正在尝试通过EF调用存储的过程,并从存储的过程中检索返回值。我已将此答案用作指导。这是我存储的过程:
CREATE PROCEDURE [dbo].[usp_test] ( @result int OUT ) AS BEGIN --DO STUFF SET @result = 0 END
这是我从EF调用的方式:
var status = new SqlParameter { ParameterName = "result", DbType = DbType.Int32, Direction = ParameterDirection.Output }; var result = context.Database.SqlQuery<int>("EXEC usp_test @result", status); var wasSuccessful = result.First() == 1; if (!wasSuccessful) { //DO STUFF }
我收到此错误消息:
数据读取器具有多个字段。多个字段对于EDM原语或枚举类型无效
我究竟做错了什么?
select @result在程序结束前尝试。
select @result
CREATE PROCEDURE [dbo].[usp_test] ( @result int OUT ) AS BEGIN --DO STUFF SET @result = 0 Select @result END
希望它能工作。