【发布时间】:2016-01-19 14:44:53
【问题描述】:
我正在尝试将嵌入式 RavenDB 数据库用于使用 C# 和 WPF(使用 MVVM)编写的小型桌面应用程序。现在我在问自己如何以正确的方式处理会议。我在应用程序开始时加载了一些项目,这些项目可能会在某个时候更新。
最好的处理方法是什么?
到目前为止,我坚持或阅读的解决方案是:
- 在应用程序的整个生命周期中使用单个会话 - 我还没有阅读过有关该会话的信息,因此我认为它不应该是首选解决方案
- 在更改对象后打开会话,从服务器再次加载对象,使用 ValueInjector 之类的库覆盖本地对象中的所有值并保存这些更改 - 看起来更像是 hack 修复
- 保存每个对象的 etag 并将其与 store 方法一起使用以替换数据库中的完整对象 - 似乎也不是一个好的解决方案
因此,这些可能性似乎都不是很好,不幸的是,所有样本中有 90% 似乎仅适用于 MVC 控制器。
有没有办法从旧的封闭会话中重新附加对象?或者有没有其他推荐的方法来实现我想要的?
【问题讨论】: