【发布时间】:2017-11-29 22:26:46
【问题描述】:
我正在尝试通过执行存储过程在我的数据库中进行批量更新。我正在调用 DbContext.Database.ExecuteSqlCommand 方法,如下所示:
_context.Database.ExecuteSqlCommand("EXECUTE TestProcedure");
在这个粗略的测试中,我的存储过程如下所示:
BEGIN
UPDATE TestTable
SET MyColumn = 'changed'
END
Select @@ROWCOUNT
当我直接在 SSMS 中执行 SProc 时,我得到了返回的行数。但是,如果我通过上面发布的代码执行此操作,我总是得到 -1 的结果(即使 SProc 正确执行 - 我可以在我的表中验证)。
当我把代码改成这样时:
_context.Database.ExecuteSqlCommand("UPDATE TestTable SET MyColumn = "changed");
然后我得到正确数量的更新行。由于我的实际代码更冗长,我想使用一个 SProc,但我需要准确的受影响行数。
如何使用 SProc?
【问题讨论】: