Шаблон для отслеживания изменения поля в бизнес-объектах - PullRequest
0 голосов
/ 03 февраля 2012

Я работаю с некоторыми сотрудниками по аренде офисов и т. Д. Один из запросов от клиента заключался в том, что продукт должен иметь возможность отслеживать изменения свойств для определенных объектов (например, свойство BusinessName в классе Tenant).Я придумаю решение, что для каждого свойства будут классы декораторов.Будет дата, когда «изменение будет замечено», поэтому, исходя из этой даты, я хотел бы обернуть оригинальный класс Tenant: ITenant с fe. BusinessNameDecorator: TenantDecorator: класс ITenant.* this

Проблема в том, что код начинает пахнуть, и сантехника попадает в бизнес-классы.Есть ли проверенное и проверенное решение или шаблон для отслеживания изменений и их сохранения в бизнес-объектах?Я не хочу изобретать велосипед, но, к сожалению, я ничего не нашел.

Спасибо за вашу помощь PS: Извините за мой плохой английский:)

1 Ответ

0 голосов
/ 03 февраля 2012

Вы можете попробовать настроить механизм, такой как поддержка POCO в EF. Когда вы используете POCO с Entity Framework, EF все еще удается отследить, какие свойства были изменены на ваших объектах сущности.

В основном EF использует Reflection.Emit для создания во время выполнения классов, производных от ваших POCO и добавления поведения отслеживания изменений (при условии, что отслеживаемые свойства ваших POCO объявлены как виртуальные).

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

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