我在Asp.net WebAPI中实现了一个使用非常复杂的数据模型的CRUD服务;但是,每个数据模型对象都可以通过Guid
类型进行标识。
我想阻止针对给定Guid
并发运行的操作。
因此,例如,我可以允许Object{ Guid = 1 }
和Object{ Guid = 2 }
的更新同时运行,但我无法允许{ Guid = 1 }
上的两个单独更新运行同时。第二种情况可能发生,因为完全独立的客户端的类似请求可能会到达服务器。
如何实现这种锁定。
答案 0 :(得分:1)
是否可以使用数据库?
制作一个包含两列的简单表:Id (int)
和InUse (bit)
。
您甚至可以将其设为一列,只需Id (int)
- 如果表中有ID,则表示正在使用。
这样,它就不会受到应用程序池回收的影响,因为内存解决方案就是这样,您可以利用事务。