不幸的是,似乎没有任何ExecuteSqlCommand文档,我只能找到FromSql的文档。我能够使用ExecuteSqlCommand成功调用存储过程,该命令参数返回受影响的行。
但是,我正在尝试将一个DbParameter的Direction属性更改为ParameterDirection.Output。这似乎不起作用,我无论如何都找不到这种用法的例子。我看到的最接近的是EF Core GitHub仓库中的issue #3115,但没有使用out参数。
当然我可以使用DbCommand来实现这一点,但是ExecuteSqlCommand是否只使用DbParameter作为命名参数并忽略方向?如果是这样,那么理想情况下应将其记录在某处 - 也许可以扩展Raw SQL Queries文章。
答案 0 :(得分:1)
这是一个特定于数据库提供程序的问题,因为它不适用于MySQL,但适用于SQL Server。下面是演示后者使用的代码:
var outParam = new SqlParameter("@ParamOut", DbType.Int32)
{ Direction = ParameterDirection.Output };
ctx.Database.ExecuteSqlCommand("EXEC dbo.MyTest @ParamOut OUTPUT", outParam);