【发布时间】:2010-12-09 21:27:13
【问题描述】:
好的,我们有以下 senario,但是你怎么做Optimistic Locking
我们有一个客户类
- 姓名
- 地址
- 版本
版本是一个冲突变量(int),当编辑行时版本将增加1。
现在我们有 Martin 打开 Customer 129,与视图模型一样,模型对象被展平到视图模型中,然后传递到客户编辑屏幕。
同时,David 还打开 Customer 129 进行编辑、更改名称并保存。
仍在编辑客户(现在是旧版本)的 Martin 去保存他的更改,此时我希望看到一个 Lock 错误被抛出
问题是你如何处理 NH 的乐观锁定(使用 FluentNHibernate 进行映射),你会做吗
- 必须将版本号推送到 ViewModel 中吗?然后在提交更新后,加载当前模型对象并检查版本号
- 或者有更好的方法(我知道如果我在同一个会话中加载、编辑和更新,NH 会进行版本控制)
还有一点,这个场景将在农场上使用,而不是共享缓存
提前多谢
【问题讨论】:
标签: nhibernate asp.net-mvc-2 locking viewmodel