我正在評估db4o是否爲ASP .NET MVC項目的持久性。如何在Web應用程序中使用db4o IObjectContainer? (容器的生命週期?)
我想知道如何在Web上下文中使用IObjectContainer關於對象生存期。在我看來,我可以做下列之一:
- 在應用程序啓動創建IObjectContainer並保持相同的情況下爲整個應用程序生命週期。
- 每個請求創建一個IObjectContainer。
- 啓動一個服務器,併爲每個數據庫交互獲取一個客戶端IObjectContainer。
這些選項在性能和併發性方面有什麼影響?
由於數據庫在IObjectContainer打開時被鎖定,所以我很肯定選項2)會給我帶來一些併發問題 - 對於選項1,情況也會如此嗎?
據我所知,如果我從IObjectContainer中檢索一個對象,它必須由同一個IObjectContainer實例保存 - 以便db4o將它識別爲同一個對象。因此,如果我選擇選項3),則必須檢索原始對象,進行必要的更改(從修改的對象複製數據),然後使用相同的IObjectContainer存儲它。這是真的 ?