我正在尝试将更改保存到包含两个项目的上下文中。一个是新的,另一个是旧的。我能够取回对象列表并毫无问题地保存单个项目,但是当我有两个项目并调用 save it 时,我会说:
存储更新、插入或删除语句影响了意外数量的行 (0)。自加载实体后,实体可能已被修改或删除。刷新 ObjectStateManager 条目。
我的代码片段如下。
谢谢你。
protected bool Save(params T[] entities)
{
foreach (T entity in entities)
{
bool b = context.Entry<T>(entity).Member<int>(string.Format("{0}Id", typeof(T).Name)).CurrentValue > 0;
if (b)
{
context.Context.Attach(entity);
context.Entry<T>(entity).State = System.Data.EntityState.Modified;
}
else
{
context.Context.Add(entity);
context.Entry<T>(entity).State = System.Data.EntityState.Added;
}
}
return context.SaveChanges() > 0;
}