2017-06-01 63 views
1

是否有SaveChanges事件更改後大火被保存,但是變更跟蹤更新之前?實體Framwork後保存事件

我使用EF 6.

我需要執行一個任務,只要在某個實體的狀態變化。

我已重寫SaveChanges進行此設置。我可以使用ChangeTracker來說明有什麼變化。當它是正確的實體正確的變化我的代碼的火。

在基地SaveChanges被調用後,ChangeTracker不再顯示被修改的實體,所以我需要在保存之前完成我的任務。然而,有一個機會,SaveChanges會失敗,我不應該做我的任務。

保存後,如何更新ChangeTracker

+0

爲什麼不在備份之前備份所有對象狀態,然後保存更改並處理該字典之後? – CodeNotFound

+0

這就是我所做的,但它似乎很髒。 –

+0

您是否嘗試覆蓋dbcontext類中的保存更改? – kblau

回答

1

可以重寫保存更改的方法?

//you will use a different dbcontext name than faroutEntities5 
public partial class faroutEntities5 : DbContext 
{ 
    public faroutEntities5() 
     : base("name=faroutEntities5") 
    { 
    } 

    public override int SaveChanges() 
    { 
     ChangeTracker.Entries().... 

     return base.SaveChanges(); 
    } 

    ...