1

我有這樣一個存儲過程:如何在Entity Framework 6中執行存儲過程而不返回結果?

CREATE PROCEDURE InsertTest(@p1 NVARCHAR(50) , @p2 INT) 
AS 
BEGIN 
    INSERT INTO dbo.Test(Name, Code) 
    VALUES (N'', 0) 
END 

或其他

我嘗試使用此代碼:

context.Database.SqlQuery<int>("InsertTest @p1 , @p2", "a",1); 

但是這會導致錯誤。

如何使用DbContext來運行它?

+0

什麼錯誤?你不應該調用'ExecuteSqlCommand'嗎?檢查[這裏](http://stackoverflow.com/questions/6219643/how-to-call-stored-procedure-in-mvc-by-ef)和[這裏](http://stackoverflow.com/questions/ 14264750 /如何調用存儲過程與實體框架) –

+0

[調用存儲過程,無需返回使用實體框架](https://stackoverflow.com/questions/16990666/calling-a-存儲過程與 - 沒有到返回使用實體框架) –

回答

2

做到這一點。

context.Database.ExecuteSqlCommand(
    "InsertTest @p1 , @p2", 
    new SqlParameter("@p1", "a"), 
    new SqlParameter("@p2", 1)); 

context.Database.SqlQuery<object>(
    "exec InsertTest @p1 , @p2", 
    new SqlParameter("@p1", "a"), 
    new SqlParameter("@p2", 1)).FirstOrDefault(); 
相關問題