NHibernate IPreUpdateEventListener странное поведение - PullRequest
0 голосов
/ 30 апреля 2010

Я использую события NHibernate 2.0.1 и IPreUpdateEventListener, IPreInsertEventListener для ведения журнала аудита.

У меня есть базовая сущность, которая имеет отношение один ко многим, как это.

Пользователь -------> Книги

Из метода контроллера ASP.NET MVC я добавляю книгу для пользователя, как этот.

Book book =new Book("LOTR");
var userBook=user.AddBook(book);

После очистки сеанса Событие OnPreInsert вызывается один раз для вновь созданного объекта Book, а OnPreUpdate вызывается для всех объектов книг в коллекции книг пользователя, даже если они не изменились. Поэтому я обновляю свойство LastMofiedDate из всех объектов книги, и я не хочу этого делать. Это предполагаемое поведение NHibernate или я что-то упустил?

1 Ответ

0 голосов
/ 03 мая 2010

Наконец-то я решил проблему. Проблема заключалась в том, что поле Enum в моем объекте Book отображалось как DataType Int32 в файле отображения. Поэтому NHibernate помечает каждый объект Book как грязный после инициализации. Дополнительную информацию можно найти в этом ответе

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