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.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...