我正在使用NHibernate 2.0.1和IPreUpdateEventListener,IPreInsertEventListener事件进行审计记录。
我有一个像这样的一对多关系的基本实体。
用户------->图书
从ASP.NET MVC控制器方法我正在向这样的用户添加一本书。
Book book =new Book("LOTR");
var userBook=user.AddBook(book);
会话刷新 OnPreInsert 事件为新创建的Book对象调用一次,而不是 OnPreUpdate 为用户图书集中的所有图书对象调用,即使它们没有更改。所以我正在更新所有书籍对象的LastMofiedDate属性,我不想这样做。这是NHibernate的假设行为,还是我错过了什么?
答案 0 :(得分:0)
最后我解决了这个问题。问题是我的Book对象上的Enum字段在映射文件中映射为DataType Int32。所以NHibernate在初始化后将每个Book对象标记为脏。更多信息可在this answer
中找到