我有一个拥有相关实体集合的实体。
我使用相同的密钥和新的相关实体(集合)创建一个新实体。
我已将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();
答案 0 :(得分:0)
解决方案是首先删除所有对象然后插入。不是我喜欢的,但没有人提供更好的。