1

我有一个使用 MVVM 模式的 WPF 应用程序,其中 ViewModel 调用执行所有保存/更新/获取/删除内容的查询。例如,我这样做是因为很容易修改查询以交换存储系统。

如果数据被即时存储/删除,应用程序运行良好,但客户端需要一个保存按钮,所以我必须记住(或 Nhibernate)进行了哪些更改。我不想让会话打开很长时间,所以我不知道最好的方法。你知道任何可行的模式/架构吗?

4

1 回答 1

1

这对我来说适用于一个简单的应用程序:

  • 视图模型的开放会话
  • 如果不使用事务则 Flushmode.Never (防止查询刷新)
  • 使用生成客户端 id 的 id 生成器(hilo,guidcomb,...)
  • 不要在 CRUD 之后使用 Flush
  • 检查session.IsDirty以启用保存按钮
  • 如果保存 -> 刷新()或提交
  • 如果取消 -> 处理会话或回滚

然后 NH 将在刷新时发送所有操作

于 2012-04-18T06:12:24.457 回答