您如何使用 NHibernate 支持乐观/悲观并发?
Kevin Pang
问问题
14833 次
3 回答
22
NHibernate 支持 2 种类型的乐观并发。
您可以通过在映射文件中的“class”元素上使用“optimistic-lock=dirty”属性来检查脏字段,也可以使用“optimistic-lock=version”(这也是默认设置)。如果您使用的是版本,则需要在映射文件中提供一个“版本”元素,该元素映射到数据库中的字段。
版本可以是 Int64、Int32、Int16、Ticks、Timestamp 或 TimeSpan 类型,并在保存时自动递增。有关详细信息,请参阅NHibernate 文档中的第 5 章。
于 2008-09-23T01:08:19.850 回答
17
NHibernate 默认支持乐观并发。另一方面,悲观并发可以通过该ISession.Lock()
方法来实现。
这些问题将在本文档中详细讨论。
于 2008-09-23T01:03:59.690 回答
2
您还可以“仅”手动比较版本号(假设您已将 Version 属性添加到您的实体)。
显然,乐观是唯一理智的选择。当然,有时我们必须处理疯狂的场景,但是......
于 2008-10-15T08:28:54.007 回答