使用NHibernate处理并发写入

时间:2012-06-29 06:54:11

标签: nhibernate concurrency

我正在使用Fluent NHibernate编写的应用程序。这是一个.Net MVC应用程序,现在我遇到了以下问题:当两个用户执行相同的操作(即同时预订相同的约会)时,应用程序似乎没有快速完成检查为了看到时间段已被预订。

我对NHibernate的经验非常有限,我可以告诉你的是,此时NHibernate Session的事务隔离级别设置为ReadCommitted;会话生存期我假设它被设置为PerWebRequest(我还没有找到执行此操作的代码部分)。

我知道这是非常少的信息,但任何人都可以请至少指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

NHibernate文档有一章专门讨论Optimistic concurrency control

简而言之,通过添加版本字段,NHibernate可以自动检测代码是否正在尝试修改读取后被另一个会话更改的记录。之后,您可以重试,显示错误消息等。