微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – EF6 – ExecuteSqlCommandAsync – 获取返回参数(声明标量变量错误)

我有以下代码

object[] parameters =
    {
        new sqlParameter("@val1",val1),new sqlParameter("@val2",val2),new sqlParameter
        {
            ParameterName = "@retVal",sqlDbType = sqlDbType.Int,Direction = ParameterDirection.ReturnValue,Value = -1
        }
    };

    await context.Database.ExecutesqlCommandAsync("EXEC @retVal = Example_SP @val1,@val2",parameters);

我正在使用的SP很好,并在sql MS中返回一个值.但是当我使用EF执行它时,我被告知我必须声明标量变量@retVal’.这不是我的sqlParameter吗?

我已经尝试从参数中移除’@’符号,正如一些人在其他地方所建议的那样,但据我所知,’@’符号是可选的,无论如何都没有区别.

如何使用ExecutesqlCommandAsync从SP获取返回值而不会导致错误

谢谢!

解决方法

您需要使用ParameterDirection.Output而不是ParameterDirection.ReturnValue.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐