1

有什麼方法可以查看ChangeInterceptor()內實體之間的關係是如何影響/改變的?這裏是一個使用NorthWind數據庫的例子,當你從一個員工實體中刪除/刪除一個訂單實體時,其關係是一對多關係,一個員工有很多訂單,如何檢測到一個訂單已從員工實體中刪除。我知道使用ObjectStateEntry類可以調用GetModifiedProperties()來查看哪些屬性發生了更改,但我們如何看到Collections/Associations更改了哪些內容?它與RelationshipManager有什麼關係?使用ChangeInterceptor檢查實體之間的「關係」變化/突變

[ChangeInterceptor("Employees"] 
public void OnChangeEmployees(Employee employee, UpdateOperations operations) 
{ 
    //I'm using EntityFramework 4.1 
    //We have to dropdown the ObjectContext to detect IA, Independant Association, changes 
    ObjectContext ctx = ((IObjectContextAdapter)this.CurrentDataSource).ObjectContext; 

    ObjectStateEntry entry = ctx.ObjectStateManager.GetObjectStateEntry(employee); 

    //What do I do here for detecting relationship changes.. I.E and Order was added? 


} 

在此先感謝。

回答

0

而不是使用ChangeInterceptor ...只需在ObjectContext上實現SavingChanges事件處理程序。這個article解釋瞭如何查看一個實體的關係是否受到影響。