2

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

      DBSet<STORAGE_INFFO>.ONDELETE+= CUSTOM_FUNCTION

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

1 回答 1

2

可能您正在寻找ObjectContext.SavingChanges活动

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

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

原海报说:

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

向上转换DbContextIObjectContextAdapter

((IObjectContextAdapter)dbContext).ObjectContext.SavingChanges += ...
于 2013-04-14T20:36:41.883 回答