桌面应用程序的RavenDB会话管理

时间:2015-10-20 19:22:45

标签: c# wpf mvvm ravendb

我正在尝试将嵌入式RavenDB数据库用于用C#和WPF(使用MVVM)编写的小型桌面应用程序。现在我问自己如何以正确的方式处理会话。我在应用程序开始时加载了一些项目,这些项目可能会在某个时间更新。

处理这个问题的最佳方法是什么? 我到目前为止所寻求或阅读的解决方案是:

  • 在应用程序的整个生命周期中使用单个会话 - 我还没有读过那个,所以我认为它不应该是首选解决方案
  • 在对象更改后打开会话,再次从服务器加载对象,使用像ValueInjector这样的库来覆盖本地对象中的所有值并保存这些更改 - 看起来更像是修复
  • 保存每个对象的etag并将其与store方法一起使用以替换数据库上的完整对象 - 这似乎不是一个好的解决方案

因此,这些可能性似乎都不是很好,不幸的是,90%的样本似乎只适用于MVC控制器 有没有办法从旧的,封闭的会话中重新附加一个对象?或者是否有其他推荐的方法来实现我想要的目标?

1 个答案:

答案 0 :(得分:0)

本文讨论NHibernate,但几乎所有这些都适用于RavenDB会话管理。

http://msdn.microsoft.com/en-us/magazine/ee819139.aspx