实体框架:自己的ondelete操作

本文关键字:ondelete 操作 自己的 框架 实体 | 更新日期: 2023-09-27 18:09:02

当任何记录从某个表(让我们称之为STORAGE_INFO)中删除时,必须删除磁盘中的其他数据。谁能提供一个示例(如果可能的话)如何指定自己的DELETE操作?像这样:

      DBSet<STORAGE_INFFO>.ONDELETE+= CUSTOM_FUNCTION
      CUSTOM_FUNCTION()
      {
          BASE.DELETE();
          DELETE_DISK_CONTENT();
      }

实体框架:自己的ondelete操作

您可能正在寻找ObjectContext.SavingChanges事件

如果使用整个重载迭代调用context.ObjectStateManager.GetObjectStateEntries(EntityState.Deleted)方法的结果,您将能够检测当ObjectContext保存一些更改时哪些实体被删除。

查看MSDN文章中的示例代码(这是如何实现目标的一个很好的示例!):

  • http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.savingchanges.aspx

原海报说:

这个很漂亮。但是在DBContext类中我在哪里可以找到这个事件?

DbContext向上转换为IObjectContextAdapter:

((IObjectContextAdapter)dbContext).ObjectContext.SavingChanges += ...