【问题标题】:Entity Framework Database Update With Entity Tree of New entities - OptimisticCuncurrencyException使用新实体的实体树更新实体框架数据库 - OptimisticCuncurrencyException
【发布时间】:2013-01-15 21:05:24
【问题描述】:

我有一个包含相关实体集合的实体。

我使用相同的键创建一个新实体,以及新的相关实体(集合)。

我已将 ned 相关实体添加到主实体的集合中,现在我想将所有内容保存到数据库中。

我找到了旧实体,它是集合并分离了所有东西。 比我附加的新实体和 foreach 循环 - 集合中的所有相关实体。

当我提交时 - context.SaveChanges() 我得到 OptimisticCuncurrencyException 存储更新、插入或删除语句影响了意外数量的行 (0)。自加载实体后,实体可能已被修改或删除。刷新 ObjectStateManager 条目。

有什么想法吗?

代码:

var old = (from c in context.Category.Include("Products").Where(x => (x.CatID== CatID) select c).FirstOrDefault();
            if (old != null)
            {
                context.Detach(old);
                foreach (Product stwp in old.Products)
                {
                    context.Product.Detach(stwp);
                }
            }

            context.Category.Attach(st);
            context.ObjectStateManager.ChangeObjectState(st, System.Data.EntityState.Modified);
            foreach (Product stwp in st.Products)
            {
                context.Product.Attach(stwp);
                context.ObjectStateManager.ChangeObjectState(stwp, System.Data.EntityState.Modified);

            }
            context.SaveChanges();

【问题讨论】:

    标签: entity-framework-4


    【解决方案1】:

    解决方法是先删除所有对象,然后再插入。不是我喜欢的,但没有人提供更好的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-10
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多