NHibernate 是否为表级并发提供任何类型的机制?我知道行级并发有很多不同的选项,但我找不到更高的选项。
例如:
1. 假设我从表格中读取了一些信息。
2. 根据该信息计算下一行应该是什么。
3. 然后插入计算的行,除非有其他东西出现并同时改变了表中的信息。
我知道 MS-SQL(这是我正在使用的)具有与表一起使用的时间戳来表示它们的修改,我希望我能以某种方式将它与 NHibernate 一起使用。有任何想法吗?
NHibernate 是否为表级并发提供任何类型的机制?我知道行级并发有很多不同的选项,但我找不到更高的选项。
例如:
1. 假设我从表格中读取了一些信息。
2. 根据该信息计算下一行应该是什么。
3. 然后插入计算的行,除非有其他东西出现并同时改变了表中的信息。
我知道 MS-SQL(这是我正在使用的)具有与表一起使用的时间戳来表示它们的修改,我希望我能以某种方式将它与 NHibernate 一起使用。有任何想法吗?
不,NHibernate 不支持表级并发。我通过在与其他 NHibernate 操作相同的会话中使用普通 SQL 查询解决了这个问题
...WITH (TABLOCKX HOLDLOCKX)" syntax.
这有点痛苦,但它也可以按预期工作。
是的,NHibernate 支持不同类型的并发。正如我所看到的,您对版本化或乐观并发模型感兴趣。关于它的优秀文章:http: //ayende.com/blog/3946/nhibernate-mapping-concurrency