【问题标题】:Using DB4O in MVVM application with Prism在带有 Prism 的 MVVM 应用程序中使用 DB4O
【发布时间】:2011-08-23 22:05:20
【问题描述】:

我想使用 db4o 在 Prism 应用程序中持久化我的业务对象。我应该如何维护 IObjectContainer 的生命周期?正如我从文档中知道的那样,当我用一个容器加载对象时,我应该用同一个容器保存它。所以也许某种单例范围应该是正确的。但是容器不会保持对通过它的每个对象的引用,因此它不会导致内存泄漏之类的事情吗?

我读过一些关于 Conversation per Business Transaction 的文章,但它是针对 nHibernate 的,我猜 nHibernate 的会话和 db4o 的容器是完全不同的东西。

当然,我说的是带有嵌入式 db4o 的桌面应用程序。所以,没有服务器/客户端。

【问题讨论】:

  • db4o 只保留对对象的弱引用。它不应该让任何对象自己保持活动状态。

标签: wpf mvvm prism db4o


【解决方案1】:

对于桌面应用程序,拥有一个全局容器通常更容易。这样您就可以毫无问题地存储/更新对象。所以单例范围应该是正确的。

db4o 容器只保存对对象的弱引用。这意味着它永远不应该阻止对象被收集。

我的桌面应用程序带有 db4o,我们有一个对象容器。在每个逻辑操作之后,我们只需提交持久化所有更改。

【讨论】:

    猜你喜欢
    • 2012-02-11
    • 2012-07-17
    • 2019-05-30
    • 2018-10-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    相关资源
    最近更新 更多