2016-06-12 58 views
1

我正在创建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方法?

+0

了一段时间,你可以发表评论扳机,然后尝试现在抛出,有什么异常。因为EF可能不允许同时进行其他更改 –

+0

如果我注释掉触发器,则服务运行顺利,并且不会抛出异常。 –

回答

相关问题