1
我想從我的C#代碼執行SQL Server存儲過程。下面是我使用的代碼:無法執行我的SQL Server存儲過程使用db.Database.SqlQuery(sql)
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 \服務器\ WebRole \控制器\ WEB API - 數據\ MessageController.cs 28主動
誰能告訴我什麼,我做錯了。此外,這只是一個測試,但我希望能夠提交或回滾事務。在C#端需要做些什麼來使其成爲可能?
嘗試'dbo.test'。 –
與dbo.test相同的消息。該消息是指SqlQuery參數 – Alan2
嘗試「執行測試」 –