簡體   English   中英

無法使用db.Database.SqlQuery(sql)執行我的SQL Server存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM