我有一些代码可以在使用 EF5 的应用程序中软删除记录。我的“可删除”类实现了 ISoftDelete,它只是说实现者必须有一个 bool Deleted 属性。
当我的用户单击删除时,我调用 DbContext..Remove(entity)
这会将绑定到父实体的任何属性清除为 null(如果我的父级有我的可删除实体的集合!)。
在我的 DbContext 中,我重写 SaveChanges 方法以查找任何已删除的实体,如果它们实现了我的 ISoftDelete 接口,我将状态设置为已修改而不是已删除,并将其 Deleted 属性设置为 true 以标记为已删除。我的问题是持有对父母的引用的属性为空。
调查似乎指向 ApplyOriginalValues,但由于我的值不是公共属性,而是作为集合中的孩子为我创建的,因此我正在努力实施。你能帮我吗?