2010-04-29 71 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呼籲所有圖書用戶的藏書對象新創建Book對象調用一次後,即使他們沒有changed.So我更新的所有書籍LastMofiedDate屬性的對象我不想這樣做。這是NHibernate的假設行爲還是我錯過了什麼?

+0

也許你有一個讓每本書都變髒的鬼映射?常見的是'DateTime'屬性,它應該是可以爲空的'DateTime?'。 – dotjoe 2010-04-30 17:28:09

+0

我會嘗試你的建議。我正在等待星期一,我的筆記本電腦壞了:( – mcaaltuntas 2010-05-01 16:32:59

回答

0

最後我解決了這個問題。問題是關於我的Book對象上的Enum字段,它映射爲映射文件中的DataType Int32。所以NHibernate在初始化後將每個Book對象標記爲髒。更多的信息可以在this answer