我想使用 db4o 在 Prism 应用程序中持久化我的业务对象。我应该如何维护 IObjectContainer 的生命周期?正如我从文档中知道的那样,当我用一个容器加载对象时,我应该用同一个容器保存它。所以也许某种单例范围应该是正确的。但是容器不会保持对通过它的每个对象的引用,因此它不会导致内存泄漏之类的事情吗?
我读了一些关于 Conversation per Business Transaction 的文章,但它是针对 nHibernate 的,我猜 nHibernate 的 session 和 db4o 的容器是完全不同的东西。
可以肯定的是,我说的是带有嵌入式 db4o 的桌面应用程序。所以,没有服务器/客户端。
最佳答案
对于桌面应用程序,拥有一个全局容器通常更容易。这样您就可以毫无问题地存储/更新对象。所以单例范围应该是正确的。
db4o 容器只保存对对象的弱引用。这意味着它永远不应该阻止对象被收集。
我的桌面应用程序带有 db4o,我们有一个对象容器。在每个逻辑操作之后,我们只需 promise 持久化所有更改。
关于wpf - 在带有 Prism 的 MVVM 应用程序中使用 DB4O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168132/