【发布时间】:2016-10-06 05:36:21
【问题描述】:
我正在开发一个使用 Fluent NHibernate 编写的应用程序。这是一个 .Net MVC 应用程序,现在我遇到了以下问题:当两个用户执行相同的操作(即同时预订相同的约会)时,应用程序似乎没有足够快地进行检查以便查看时间段是否已被预订。
我在 NHibernate 方面的经验非常有限,我只能告诉你,此时 NHibernate Session 的事务隔离级别设置为 ReadCommitted;会话生命周期我假设它设置为 PerWebRequest(我还没有找到执行此操作的代码部分)。
我知道这是非常少的信息,但任何人都可以请至少指出我正确的方向吗?
【问题讨论】:
-
您是否在尝试保存之前检查时间段上的现有预订?您可能需要手动执行此操作。
-
没关系,我通过在会话中使用事务对象来做对了。我在开始执行检查之前调用“session.BeginTransaction(IsolationLevel.ReadCommited)”,最后我调用“session.Transaction.Commit()”