我正在創建WCF REST風格的服務,當我嘗試通過實體框架添加記錄到我的數據庫我得到這個異常:商店更新,插入或刪除語句影響行的意外>數(0)
存儲更新,插入或刪除語句影響意外 行數(0)。自從裝載了實體 以來,實體可能已被修改或刪除。
我有我的數據庫中創建一個觸發器,它的工作原理爲:
GO
CREATE TRIGGER [dbo].[Trigger_groupLocation_date]
ON [dbo].[groupLocation]
INSTEAD OF INSERT
AS
BEGIN
SET NoCount ON
DECLARE @s int
DECLARE @g_id int
DECLARE @lat float
DECLARE @lon float
SELECT @s = sender FROM inserted
SELECT @g_id = g_id FROM inserted
SELECT @lat = latitude FROM inserted
SELECT @lon = longitude FROM inserted
insert into [groupLocation] (sender,g_id,latitude,longitude) values(@s,@g_id,@lat,@lon)
END
有一點要注意的是,我能夠直接添加記錄到數據庫中。我從here讀了一些關於例外的細節,經過一番研究,我在stackoverflow上發現了一個similar問題。但是,當我嘗試讀取的DbContext沒有刷新()方法,取而代之的是解決方案,我試過:
var ctx = ((IObjectContextAdapter)db).ObjectContext;
ctx.Refresh();
但我仍然得到同樣的異常。然後,我讀here,只有當你使用代碼第一的方法,然後這個工作可以工作,我使用「EF設計師從數據庫的方法」。如何在數據優先方法中訪問Refresh方法?
了一段時間,你可以發表評論扳機,然後嘗試現在拋出,有什麼異常。因爲EF可能不允許同時進行其他更改 –
如果我註釋掉觸發器,則服務運行順利,並且不會拋出異常。 –