Использование ChangeInterceptor для проверки изменений / мутаций «отношений» между сущностями - PullRequest
1 голос
/ 27 октября 2011

Есть ли способ увидеть, как отношения сущности были затронуты / изменены внутри ChangeInterceptor ()? Вот пример использования базы данных NorthWind, когда вы удаляете / удаляете объект заказа из объекта сотрудника, где отношение один-ко-многим, у одного сотрудника есть много заказов, как определить, был ли заказ удален из объекта сотрудника. Я знаю, что с помощью класса ObjectStateEntry вы можете вызвать GetModifiedProperties (), чтобы увидеть, какие свойства изменились, но как мы видим, какие коллекции / ассоциации изменились? Это как-то связано с 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 Ответ

0 голосов
/ 29 октября 2011

Вместо использования ChangeInterceptor ... Просто реализуйте обработчик событий SavingChanges в ObjectContext.Эта статья объясняет, как посмотреть, были ли затронуты отношения сущности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...