在ASP.NET中存储记录锁定令牌

rjz*_*zii 3 asp.net asp.net-mvc concurrency record-locking

在我目前正在处理的应用程序中,多个用户可能希望同时编辑某些内容,这意味着我们需要实现乐观锁定.但是,对于此应用程序,正在编辑的项目是一种科学协议,其中包含来自数据库中多个不同表的记录.

因此,我们希望能够指示整个协议已被锁定以供单个用户编辑,这导致了我的问题:这样做的首选方法是在数据库级别对事件进行编辑(例如,有一个表格,协议的唯一ID并检查它是否已被锁定)或是否可以接受在内存中跟踪Web服务器本身上当前锁定的协议?

目前我们只预计应用程序的大约100个用户(同时大约20个),但是这个数字可能会在未来增加,因此我们希望使用最具扩展性的选项.

Chr*_*sic 5

这个问题也取决于你的代码库的架构有多好?

如果修改这些记录的所有调用都通过单个入口点,那么我建议将所有锁定代码完全保留在应用程序中,这样您就可以将数据库保存为哑数据存储.

如果您有多个可以修改表的入口点,则需要在数据库级别实现锁定.