【发布时间】: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();
【问题讨论】: