NHibernate IPreUpdateEventListener奇怪的行为

时间:2010-04-29 21:33:24

标签: nhibernate

我正在使用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 :(得分:0)

最后我解决了这个问题。问题是我的Book对象上的Enum字段在映射文件中映射为DataType Int32。所以NHibernate在初始化后将每个Book对象标记为脏。更多信息可在this answer

中找到