2009-08-30 22 views
0

我正在使用企業庫驗證塊在對象無效時添加斷開的規則的遺留系統。然後,用戶將根據此錯誤返回一條消息,並告知該對象未更新。帶有破壞規則的NHibernate回滾(驗證最佳實踐)

唯一的問題是,現在我使用NHibernate來堅持這些對象-NHProf在我提交會話時顯示對象的更新。這是因爲該對象已被修改,我認爲ORM只是在做它的工作。

我的問題是這樣的 - 在我提交會話之前檢查這些破碎規則的最佳方法是什麼?或者我不應該使用企業庫並切換到NHibernate友好的東西?

更新

我碰到this事件監聽器類來抓NHibernate的驗證程序事件監聽器 - 我的最終實現是非常相似

回答

1

我不熟悉的企業驗證模塊,但不能你寫了一個攔截器或類似的東西,可以用來確定是否可以保存對象,基於你有關破碎規則的信息?

你也可以選擇不使用NHibernate的自動髒檢查。
這意味着您必須在修改過的對象上自己調用'保存'才能保存該對象。 You can get this functionality via NH Addins

+0

我喜歡你提到的事件監聽器選項 - 我將驗證基於接口的實體,然後檢查它是否有任何破壞的規則 - 最後如果是這樣,我將簡單地回滾事務。我更喜歡每次都要求「保存」 - 很高興有這種功能不必考慮 –