![](/img/trans.png)
[英]C# Entity Framework db.Database.SqlQuery sql like returns different rows to sql server management studio
[英]Can't execute my SQL Server stored procedure using db.Database.SqlQuery(sql)
我正在嘗試從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-Data \\ MessageController.cs 28有效
誰能告訴我我在做什么錯。 同樣,這只是對我的測試,但我希望能夠進行事務提交或回滾。 為了使這一切成為可能,我需要在C#方面做些什么?
嘗試使用ExecuteSqlCommand
方法,如下所示:
db.Database.ExecuteSqlCommand("exec dbo.test");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.