实体框架:拥有ondelete动作

时间:2013-04-14 20:30:10

标签: c# entity-framework code-first

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

      DBSet<STORAGE_INFFO>.ONDELETE+= CUSTOM_FUNCTION

      CUSTOM_FUNCTION()
      {
          BASE.DELETE();
          DELETE_DISK_CONTENT();
      }

1 个答案:

答案 0 :(得分:2)

您可能正在寻找ObjectContext.SavingChanges event

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

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

原来的海报说:

  

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

DbContext向上翻转为IObjectContextAdapter

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