添加、删除或修改实体时调用保存更改方法时出现异常.小鬼



我正在研究实体框架 4.1 .在这里,使用 AddObject() 将控件添加到数据库中,并保存该 SaveChange() 方法。

但是一旦我删除了添加的控件并尝试再次添加相同的控件,我就会一次又一次地收到此错误(存储更新、插入或删除语句影响了意外的行数 (0)。自加载实体以来,实体可能已被修改或删除。刷新对象状态管理器条目。但无法添加它。一旦我关闭了我的应用程序,然后尝试添加,然后我就可以添加该控件。

我试图在这里和那里搜索很多它是如何出错的,但找不到解决方案。因为我是实体框架领域的新生。

在这种情况下,我在每次操作(如添加、删除和修改)后调用实体框架对象上下文的 SaveChange() 方法。但我背靠背都得到了例外。它被解决了通过调用这样的方法公共无效保存(对象实体) { using (var transaction = Connection.BeginTransaction()) {

            try
            {
                SaveChanges();
                transaction.Commit();
             }
             catch (OptimisticConcurrencyException)
             {
                 if (ObjectStateManager.GetObjectStateEntry(entity).State == EntityState.Deleted || ObjectStateManager.GetObjectStateEntry(entity).State == EntityState.Modified)
                        this.Refresh(RefreshMode.StoreWins, entity);
                  else if (ObjectStateManager.GetObjectStateEntry(entity).State == EntityState.Added)
                        Detach(entity);
                  AcceptAllChanges(); 
                  transaction.Commit();
              }
        }
    }

最新更新