【发布时间】:2008-09-23 08:08:22
【问题描述】:
我有一个 ASP.NET 应用程序,它使用 NHibernate 在用户操作时以事务方式更新一些表。涉及一个日期范围,因此只能在“预订”表中输入一个条目,以便指定排他日期。
我的问题是如何防止竞争条件,即两个用户操作几乎同时发生并导致多个条目进入“预订”>1 日期。我无法在调用 .Commit() 之前进行检查,因为我认为这仍然会导致竞争条件?
我所能看到的只是在提交后进行检查并手动回滚更改,但这让我的嘴巴感觉很糟糕! :)
booking_ref (INT) PRIMARY_KEY AUTOINCREMENT
booking_start (DATETIME)
booking_end (DATETIME)
【问题讨论】:
标签: sql sql-server nhibernate