gpt4 book ai didi

c# - 如何将值从存储过程返回到 EF

转载 作者:太空狗 更新时间:2023-10-29 23:44:12 25 4
gpt4 key购买 nike

我正在尝试通过 EF 调用存储过程并从存储过程中检索返回值。我用过 this回答作为指导。这是我的存储过程:

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
}

我收到此错误消息:

The data reader has more than one field. Multiple fields are not valid for EDM primitive or enumeration types

我做错了什么?

最佳答案

在过程结束前尝试选择@result

CREATE PROCEDURE [dbo].[usp_test]
(
@result int OUT
)
AS
BEGIN

--DO STUFF

SET @result = 0
Select @result
END

希望它有用。

关于c# - 如何将值从存储过程返回到 EF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35352605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com