c# - 桌面应用程序的 RavenDB session 管理

标签 c# wpf mvvm ravendb

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

处理它的最佳方法是什么?
到目前为止,我坚持或阅读的解决方案是:

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

  • 因此,这些可能性似乎都不是很好,不幸的是,90% 的样本似乎仅适用于 MVC Controller 。
    有没有办法从旧的封闭 session 中重新附加对象?或者有没有其他推荐的方法来实现我想要的?

    最佳答案

    本文讨论了 NHibernate,但几乎所有内容也适用于 RavenDB session 管理。

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

    关于c# - 桌面应用程序的 RavenDB session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245154/

    相关文章:

    c# - UserControl 中的依赖属性 List<string>

    c# - WPF 中文本框的条件验证规则?

    WPF MVVM 服务层

    c# - 如何捕获容器中的超链接单击事件 - 松散耦合的方式?

    c# - SQL:使用带有 LIMIT 的 INNER JOIN 进行更新

    c# - 如何重新启动应用程序?

    c# - Nullable<T> 的装箱/拆箱行为如何可能?

    c# - MVVM DynamicObject + Entity Framework STE 实体 + 属性更改行为

    wpf - 在 WPF DataGrid RowHeader 中显示流水号

    c# - 自定义计数器文件 View 内存不足