如何使用NHibernate支持乐观/悲观并发?
发布于 2008-09-23 01:04:00
默认情况下,NHibernate支持开放式并发。另一方面,悲观并发可以通过ISession.Lock()
方法实现。
这些问题在this document中有详细的讨论。
发布于 2008-09-23 01:08:20
NHibernate支持两种类型的乐观并发。
您可以通过在映射文件中的"class“元素上使用”乐观锁=脏“属性来让它检查脏字段,也可以使用”乐观锁=版本“(这也是默认设置)。如果您使用版本,则需要在映射文件中提供一个" version“元素,该元素映射到数据库中的一个字段。
版本可以是Int64、Int32、Int16、Ticks、Timestamp或TimeSpan类型,并在保存时自动递增。有关详细信息,请参阅NHibernate文档中的Chapter 5。
发布于 2008-10-15 08:28:54
你也可以手动比较版本号(假设你已经给你的实体添加了一个版本属性)。
显然,乐观是唯一明智的选择。当然,有时我们不得不处理一些疯狂的场景……
https://stackoverflow.com/questions/118526
复制相似问题