Я изучаю использование NHibernate для обработки слоя персистентности в моем бизнес-приложении.Прямо сейчас мне интересно, как обрабатывать одновременные изменения / обновления в NHibernate, или, более конкретно, как сообщить нескольким распределенным экземплярам моего приложения, что один пользователь изменил данный набор данных.
I'm не ищет версионность, то есть согласованность перед лицом одновременных правок - я знаю, что NHibernate поддерживает оптимистический / пессимистичный параллелизм, и в настоящее время я использую оптимистический параллелизм через StateStateException
.
Я простохочу знать: учитывая, что пользователь A изменяет строку в наборе данных, как дать пользователю B знать, что произошло изменение, чтобы набор данных мог быть перезагружен?Сейчас я лениво загружаю большой список клиентов в сетку с помощью NHibernate.Теперь, если будет добавлен новый клиент, я бы хотел добавить его в таблицу, не перезагружая все данные снова - первое беспокойство приложения - производительность.
Кроме того, будет ли NHibernate изящно обрабатывать изменения в существующих строках?Будет ли он каким-то образом обнаруживать изменения в базовой базе данных и обновлять объекты .NET в памяти, чтобы при доступе к их свойствам получались обновленные значения?
Я думал об использовании дополнительной таблицы, сохраняя идентификаторы обновленных объектов вместе с ними.с отметкой времени, чтобы обновить предметы самостоятельно, но если NHinbernate предлагает что-то свое, это был бы гораздо лучший выбор, очевидно ...