当前位置:  开发笔记 > 编程语言 > 正文

C#数据库应用程序并发

如何解决《C#数据库应用程序并发》经验,为你挑选了1个好方法。

我在c#的某个时代使用SQL Server 2005 express作为后端编写了一个多用户应用程序.

我有一个Orders系列.要使用此类,您需要实例化它并只需调用Load(CustomerCode)方法,以便使用指定的客户订单填充集合.

我的问题:

如何强制执行并发,以便只有1个用户可以为特定客户请求Orders集合?当用户完成对象时(当对象设置为null时),我将需要再次使用它.



1> Neil Barnwel..:

您需要实现悲观脱机锁模式.

基本上你有一个表,你把记录放在其他表中的记录上表示"锁定".当您想要编辑记录时,首先检查锁定表中是否存在锁定,并在域逻辑/ UI中做出相应的反应.

它不必是数据库,它可以是内存缓存.当我在我的例子中说"table"时,我的意思是逻辑表,不一定是数据库表.

悲观离线锁通过完全避免冲突来防止冲突.它强制业务事务在开始使用它之前获取对数据的锁定,因此,大多数情况下,一旦开始业务事务,您可以非常确定您将完成它而不会被并发性反弹控制.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有