這裏是我的存儲過程我想在我的數據庫使用:使用存儲過程只刪除實體
ALTER PROCEDURE dbo.usp_DeleteExample
@ExampleID int, @LoggedInUserID int, @SessionID int, @AppID smallint
as
Declare @ExampleName varchar(255)
Set @ExampleName = (Select VehicleName from Example where ExampleID = @ExampleID)
Delete from ExampleToGeofence where ExampleID = @ExampleID;
exec usp_DeleteExampleHistoryData @ExampleID;
Delete From Example where ExampleID = @ExampleID;
Insert into UserActionHistory(ActionID, UserID, SessionID, ItemID, OldValue, ApplicationID, EventUTCDate)
Values (203, @LoggedInUserID, @SessionID, @ExampleID, @ExampleName, @AppID, getutcdate());
這裏是我的代碼,我想要使用它:
public Example Delete(Example example)
{
db.Examples.SqlQuery("usp_DeleteExample @ExampleID",
new SqlParameter("ExampleID", example.ExampleID)
);
db.SaveChanges();
return example;
}
然而, ,當我通過我的WebAPI調用它時,沒有任何東西被刪除。
我在這裏做錯了什麼?如果您需要更多信息,請告訴我。
謝謝。
編輯:我只是說
模型構建器配置:
modelBuilder.Entity<Example>()
.MapToStoredProcedures(e =>
e.Delete(v => v.HasName("usp_DeleteExample")));
您是否通過模型瀏覽器導入了存儲過程?這是針對似乎是一個名爲Examples的表的查詢運行。似乎有點奇怪,我... –
見編輯。謝謝。 – nzondlo
你有什麼錯誤嗎?您似乎只通過一個參數,而程序顯然需要更多。此外,在數據庫上運行跟蹤以查看PROC是否真的被稱爲 – Diego