wpf - 在带有 Prism 的 MVVM 应用程序中使用 DB4O

标签 wpf mvvm prism db4o

我想使用 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/

相关文章:

WPF + PRISM - 显示带有控件的模式弹出窗口?

wpf - 使用我的自定义面板设置 ItemsControl 中的项目的附加属性在 WPF 中不起作用

c# - 在 MVVM 中解耦 ViewModel

c# - 使用 ADAL 中的 AuthenticationContext 时是否可以在客户端计算机上存储访问 token

wpf - 将 ICommand 绑定(bind)到 TabItem WPF (MVVM)

java - Android 数据绑定(bind) layout_width 和 layout_height

listview - 从按钮命令 xamarin.forms MVVM 获取 ListView

WPF:Validation.ErrorTemplate 未显示

wpf - 托管的Winform控件不响应来自WPF的事件

mvvm - 如何在 Prism 中的 XAML 页面代码(Xamarin Forms)中访问 View 模型实例