ChangeInterceptorを使用してエンティティ間の「リレーションシップ」変更/突然変異を検査する

Entityの関係がChangeInterceptor()の内部でどのように影響を受けたり変更されたかを確認する方法はありますか?ここでは、NorthWindデータベースを使用して、関係が一対多である従業員エンティティから注文エンティティを削除/削除した場合の例を示します。従業員には多くの受注があり、受注の検出方法はどのようにして従業員エンティティから削除されました。 ObjectStateEntryクラスを使用して、GetModifiedProperties()を呼び出してPropertiesの変更内容を知ることができますが、Collections/Associationsがどのように変更されたのかはわかります。 RelationshipManagerと関係がありますか?

[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?


} 

前もって感謝します。

1

1 答え

ChangeInterceptorを使用する代わりに... ObjectContextにSavingChangesイベントハンドラを実装するだけです。この記事では、エンティティの関係が影響を受けているかどうかを確認してください。

0
追加された