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