1
我有一個很大的現存項目,它使用NHibernate 2和無狀態會話,它使用攔截器在CRUD操作之前修改值(例如:插入/更新/ ecc的時間戳)。現在升級到NHibernate 4後,我發現有一個設計選擇不會爲無狀態會話調用攔截器,我找不到解決方法,有沒有人遇到過這樣的問題,並且可能會有解決方案?有沒有一種方法可以在NHibernate 4.0中使用Interceptor來進行無狀態會話?
我有一個很大的現存項目,它使用NHibernate 2和無狀態會話,它使用攔截器在CRUD操作之前修改值(例如:插入/更新/ ecc的時間戳)。現在升級到NHibernate 4後,我發現有一個設計選擇不會爲無狀態會話調用攔截器,我找不到解決方法,有沒有人遇到過這樣的問題,並且可能會有解決方案?有沒有一種方法可以在NHibernate 4.0中使用Interceptor來進行無狀態會話?
您可以改爲使用Event Listeners。 Ayende在他的博客中寫了一個post。
即使我想過,但我已經看到無狀態不會觸發事件:http://nhibernate.info/blog/2008/10/30/bulk-data-operations-with-nhibernate-s-stateless -sessions.html「...一個常規的NHibernate ISession在第一級緩存中保存了大量的數據(這使得很多NHibernate神奇的東西),然而IStatelessSession沒有這樣的東西,它不會緩存任何東西,它也不會觸發您通常可以插入的所有事件,這僅用於批量數據操作......「 – Andrea