我正在评估db4o是否为ASP .NET MVC项目的持久性。如何在Web应用程序中使用db4o IObjectContainer? (容器的生命周期?)
我想知道如何在Web上下文中使用IObjectContainer关于对象生存期。在我看来,我可以做下列之一:
- 在应用程序启动创建IObjectContainer并保持相同的情况下为整个应用程序生命周期。
- 每个请求创建一个IObjectContainer。
- 启动一个服务器,并为每个数据库交互获取一个客户端IObjectContainer。
这些选项在性能和并发性方面有什么影响?
由于数据库在IObjectContainer打开时被锁定,所以我很肯定选项2)会给我带来一些并发问题 - 对于选项1,情况也会如此吗?
据我所知,如果我从IObjectContainer中检索一个对象,它必须由同一个IObjectContainer实例保存 - 以便db4o将它识别为同一个对象。因此,如果我选择选项3),则必须检索原始对象,进行必要的更改(从修改的对象复制数据),然后使用相同的IObjectContainer存储它。这是真的 ?