如何使用NHibernate实现保存/放弃功能?

时间:2012-04-17 08:22:29

标签: c# nhibernate mvvm

我有一个使用MVVM模式的WPF应用程序,其中ViewModel调用查询来执行所有save / update / get / delete操作。我这样做是因为很容易将这些查询修改为交换存储系统,例如。

如果数据在运行中存储/删除但是客户端需要一个“保存”按钮,那么应用程序工作正常,因此我必须记住(或Nhibernate)进行了哪些更改。我不想长时间开会,所以我不知道最好的方法。你知道任何有用的模式/架构吗?

1 个答案:

答案 0 :(得分:1)

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

  • 为viewmodel打开会话
  • 如果不使用事务,则Flushmode.Never(阻止查询刷新)
  • 使用id生成器生成客户端ID(hilo,guidcomb,...)
  • 在CRUD之后不要使用Flush
  • 选中session.IsDirty以启用保存按钮
  • 如果保存 - > flush()或commit
  • 如果取消 - >处理会话或回滚
然后,NH将在结束时发送所有动作