在添加,删除或修改实体时调用savechange方法时出现异常。 IMP

时间:2012-12-06 04:21:04

标签: entity-framework-4.1

我正在研究Entity Framework 4.1。这里使用AddObject()将控制添加到数据库中并保存起来使用SaveChange()方法。

但是一旦我删除了添加的控件并尝试再次添加,我一次又一次地收到此错误(存储更新,插入或删除语句影响了意外的行数(0)。实体可能已被修改或删除因为实体已加载。刷新ObjectStateManager条目。)但无法添加它。一旦我关闭我的应用程序然后尝试添加然后我能够添加该控件。

我试图在这里搜索很多,但是找不到解决办法。因为我是实体框架领域的新生。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我在每次操作(如添加,删除和修改)之后调用Entity框架对象上下文的SaveChange()方法。但我背靠背却异常。它得到了解决 通过调用这样的方法 public void Save(对象实体)         {             使用(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();
              }

        }
    }