0

我通过删除它包含的所有实体并从上下文中删除每个实体来清空实体集合,然后我正在重新填充可能具有与刚刚删除的实体相同的主键的实体。

protected void RemoveAllElements<T>(System.Data.Objects.DataClasses.EntityCollection<T> col, Func<T, bool> deleteIfTrue) where T : System.Data.Objects.DataClasses.EntityObject
        {

            if (col != null && col.Count > 0)
            {
                for (int i = col.Count - 1; i >= 0; i--)
                {
                    var elt = col.ElementAt(i);
                    if (deleteIfTrue(elt))
                    {
                        col.Remove(elt);
                        DBContextManager.CurrentContext.DeleteObject(elt);
                    }
                }
            }
        }

然后我通过添加新实体来重新填充集合,但是当我保存时,我遇到了约束违规,因为在插入新实体之前没有删除实体。在添加新实体之前,是否需要保存对上下文的更改?

4

1 回答 1

0

在添加新实体之前,是否需要保存对上下文的更改?

答案是肯定的!当您保存更改时,您正在对数据库进行提交,并且在它之后执行您的更改。

于 2013-10-31T16:37:20.763 回答