在將更新保留到我的業務實體之前,我需要執行驗證檢查以確定哪些屬性已更改。例如,某些字段只能在「狀態」屬性具有特定值時更新。例如。當訂單實體具有最終確定狀態時,只能更新註釋(字符串)字段。這種事情可能使用NHibernate,或者我應該在商業實體中跟蹤自己的變化嗎?使用NHibernate確定在更新之前哪些字段已經更新(用於驗證)
回答
如果我明白你想要做什麼,Gabriel的解決方案並不完全符合你的需求。如果不是,您可以嘗試event listener。這些允許你鉤入一個普通的事件(比如保存)並在NHibernate完成保存/插入/更新/刪除之前做一些處理。另外,你可以通過實現IInterceptor接口來研究使用攔截器。
我設法使用我自己的IPreUpdateEventListener的自定義實現。 OnPreUpdate()方法包含一個PreUpdateEvent類型的參數,其中包含舊狀態和新狀態。可以將這些進行比較,以確定哪些屬性發生了變化。源代碼可根據要求提供 – teevus 2009-06-23 02:47:09
這種事情確實是可能的。編碼本能有一個偉大的職位introducing NHibernate.Validator。
感謝您的回答。我更關心跟蹤哪些字段已被修改,並針對這些字段應用驗證規則。在面值NHibernate.Validator似乎沒有提供任何支持(糾正我,如果我錯了) – teevus 2009-06-02 07:02:08
- 1. 在更新之前驗證字段
- 2. django知道哪些字段已更新?
- 3. 查找調用update_attributes後哪些字段已更新?
- 4. 找出哪些字段正在更新
- 5. 自定義驗證用於更新表
- 6. 如何確定哪個字段已更新?
- 7. 更新文本使其在更新之前的DIV的已經點擊 - jQuery的
- 8. 如何在asp.net驗證之前更新面板。使用telerik
- 9. 使用IDataErrorInfo更新源更新前的WPF表單驗證
- 10. 檢查GDataServiceGoogleCalendar在刷新之前是否已經更新?
- 11. 如何在使用hibernate的情況下使用更新,我不確定哪些字段會被更改?
- 12. 更改驗證在beforeInsert和更新前
- 13. NHibernate在刪除它之前更新行?
- 14. NHibernate - 使用固定值更新多行的選定字段
- 15. Nhibernate更新整數字段=字段+ 1
- 16. 如何知道哪些字段已更新
- 17. Parse.com:在更新對象之前驗證用戶?
- 18. 更新計算字段而不驗證
- 19. MongoDB更新中的Dinamically驗證字段
- 20. 更新字段驗證密碼?
- 21. MVC驗證 - 更新另一個字段?
- 22. 發佈之前的Sitecore更新字段
- 23. 如何在NHibernate更新前對dB進行驗證
- 24. C#字段已更新
- 25. 表字段已更新
- 26. 模型驗證不適用於更新
- 27. 用於更新神經網絡的驗證集?
- 28. 如何比較舊版本的通行證的最新版本以確定哪些字段已更改?
- 29. 基於已經在表中對數據進行匹配更新特定字段
- 30. 確定哪些FormCollection值已更改
由於我需要更多的代表評論,你可以發佈你的代碼?我的'OldState'數組總是空的... – Lodewijk 2011-02-08 02:33:57