NHibernate + одновременное редактирование: как получать уведомления об изменениях?

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

Я не ищу управление версиями, то есть согласованность перед лицом одновременного редактирования - я знаю, что NHibernate поддерживает оптимистичный / пессимистичный параллелизм, и В настоящее время я использую оптимистичный параллелизм, обрабатывая исключение StateStateException .

Я просто хочу знать: учитывая, что пользователь A изменяет строку в наборе данных, как сообщить пользователю B, что произошло изменение, чтобы набор данных можно перезагрузить? Прямо сейчас я лениво загружаю большой список клиентов в сетку с помощью NHibernate. Теперь, если добавлен новый клиент, я хотел бы добавить его в сетку, не перезагружая заново все данные - первая проблема приложения - это производительность.

Кроме того, будет ли NHibernate изящно обрабатывать изменения в существующих строках? Будет ли он каким-либо образом обнаруживать изменения в базовой базе данных и обновлять объекты .NET в памяти, чтобы доступ к их свойствам давал обновленные значения?

Я подумал об использовании дополнительной таблицы, сохраняя идентификаторы обновленных объектов вместе с отметкой времени чтобы обновлять элементы самостоятельно, но если NHinbernate предлагает что-то свое, это, очевидно, будет гораздо лучшим выбором ...

6
задан Kristie Blande 12 November 2010 в 15:40
поделиться