Реализуйте кнопку «Отмена» в формах, которые используют привязку данных и nhibernate - PullRequest
1 голос
/ 07 октября 2010

Я использую nhibernate для доступа к базе данных mysql, и у меня есть много форм -winforms, использующих привязку данных для изменения свойств этих объектов. Существует много объектов -nhibernate, созданных / удаленных также во время использования этих форм.

Мне нужно добавить кнопку «Отмена» в эти формы.

Я могу отложить создание / удаление объектов в базе данных (Session.Save/Delete nhibernate) до момента закрытия формы. Но я не знаю, что делать с изменением свойств загруженных объектов непосредственно пользователем ( изменено привязкой данных winforms ) или добавлением / удалением объектов в коллекции связанных объектов.

Я вообще не эксперт по nhibernate. Есть ли способ пометить ссылочный объект как «еще не загружен», чтобы принудительно обновить обновление из БД при следующем обращении к нему любым способом (коллекции и свойства) без потери ссылки (вид возврата ссылки на прокси-объект в исходное состояние до первой загрузки из БД)?

Я вообще не эксперт по winforms. Как я могу узнать, какие объекты были изменены с помощью привязки данных?

1 Ответ

1 голос
/ 25 мая 2011

Я полагаю, что простым подходом было бы использовать INotifyPropertyChanged на ваших сущностях и INotifyCollectionChanged или использовать коллекцию, которая уже реализует ее. Затем вы можете подписаться на эти события и, по крайней мере, знать, изменились ли они.

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

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