当从某个表中删除任何记录(让我们称之为 STORAGE_INFO)时,必须删除磁盘中的其他数据。谁能提供一个示例(如果可能的话)如何指定自己的 DELETE 操作?像这样的东西:
DBSet<STORAGE_INFFO>.ONDELETE+= CUSTOM_FUNCTION
CUSTOM_FUNCTION()
{
BASE.DELETE();
DELETE_DISK_CONTENT();
}
当从某个表中删除任何记录(让我们称之为 STORAGE_INFO)时,必须删除磁盘中的其他数据。谁能提供一个示例(如果可能的话)如何指定自己的 DELETE 操作?像这样的东西:
DBSet<STORAGE_INFFO>.ONDELETE+= CUSTOM_FUNCTION
CUSTOM_FUNCTION()
{
BASE.DELETE();
DELETE_DISK_CONTENT();
}
可能您正在寻找ObjectContext.SavingChanges
活动
如果您context.ObjectStateManager.GetObjectStateEntries(EntityState.Deleted)
使用整个重载迭代调用方法的结果,您将能够检测到在ObjectContext
保存一些更改时删除了哪些实体。
查看 MSDN 文章中的示例代码(这是一个很好的示例,说明如何实现您的目标!):
这很漂亮。但是我在哪里可以在 DBContext 类中找到这个事件?
向上转换DbContext
为IObjectContextAdapter
:
((IObjectContextAdapter)dbContext).ObjectContext.SavingChanges += ...