2012-10-01 39 views

回答

3

how to create a readonly session in nHiberate?

或者可以更換默認的保存/更新/刪除事件偵聽器與你自己的,什麼也不做

要做到這一點,在你的NHibernate的配置,你需要做的是這樣的:

Fluently.Configure() 
    // your config goes here 
    .ExposeConfiguration(
     x => x.EventListeners.SaveOrUpdateEventListeners = 
      new ISaveOrUpdateEventListener[ ]{new NoOpEventListener() } ; 
    // etc for other types 
+0

嗨,謝謝你。我確實看到了你提到的帖子,但對我來說,積累所有更新並且永遠不會刷新它們似乎是不直觀的。這似乎是對資源的嚴重浪費。我認爲這種方法好得多。我在那裏添加了一個鏈接。 – Jim

+0

不,更新不會在設置session.FlushMode = FlushMode.Never之後累積。我通過在你的問題中覆蓋SaveOrUpdateEventListeners來檢查它,並且偵聽器不會用FlushMode.Never調用。在您的解決方案中,每次更改都會調用NoOpEventListener – razon