无法使用 db 执行我的 SQL Server 存储过程.Database.SqlQuery(sql).
本文关键字:Database 存储过程 SqlQuery sql Server SQL db 我的 执行 | 更新日期: 2023-09-27 18:36:32
我正在尝试从我的 C# 代码执行 SQL Server 存储过程。这是我使用的代码:
var sql = @"test";
try
{
var query = db.Database.SqlQuery(sql);
return Ok();
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
下面是存储过程:
CREATE PROCEDURE [dbo].[test]
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION;
PRINT 'INSERT 1 START';
INSERT INTO Message (Text, TypeId) VALUES ('Message 5', 0);
THROW 50002,'thrown',1;
PRINT 'INSERT 2 START';
INSERT INTO Message (Text, TypeId) VALUES ('Message 6', 0);
PRINT 'GOT HERE';
COMMIT TRANSACTION;
RETURN;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
RETURN;
END CATCH
END
我收到一条消息,内容如下:
严重性代码说明项目文件行抑制状态 错误 CS0411 方法的类型参数 'Database.SqlQuery(string, params object[])' 不能是 从使用情况推断。尝试指定类型参数 明确地。 WebRole C:''H''server''WebRole''Controllers''Web API - 数据''消息控制器.cs 28 个活动
谁能告诉我我在这里做错了什么。 这也只是对我的测试,但我希望能够让事务提交或回滚。我需要在 C# 端做些什么来实现这一点吗?
尝试使用ExecuteSqlCommand
方法,如下所示:
db.Database.ExecuteSqlCommand("exec dbo.test");