2010-04-29 7 views
0

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

У меня есть базовый объект, который имеет отношение один к многим.

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

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

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

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

+0

Возможно, у вас есть призрачное картографирование, которое делает каждую книгу грязной? Общее - это свойство DateTime, которое должно быть NULL-значением DateTime ?. – dotjoe

+0

Я попробую ваше предложение. Я жду понедельник, Мой ноутбук сломался :( – mcaaltuntas

ответ

0

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

Смежные вопросы