C#数据库应用程序并发

C#数据库应用程序并发,c#,concurrency,C#,Concurrency,我使用SQLServer2005Express作为后端,在c#时代编写了一个多用户应用程序 我有一个订单收集。为了使用这个类,您需要实例化它并调用Load(CustomerCode)方法,以便用指定的客户订单填充集合 我的问题: 如何强制执行并发性,以便只有一个用户可以为特定客户请求订单集合?当用户处理完对象时(当对象设置为null时), 我需要使它再次可用。您需要实现该模式 实际上,您有一个表,您将记录放入其中,该表表示对其他表中的记录的“锁定”。当您想要编辑一条记录时,首先检查锁表中是否有锁

我使用SQLServer2005Express作为后端,在c#时代编写了一个多用户应用程序

我有一个订单收集。为了使用这个类,您需要实例化它并调用Load(CustomerCode)方法,以便用指定的客户订单填充集合

我的问题:

如何强制执行并发性,以便只有一个用户可以为特定客户请求订单集合?当用户处理完对象时(当对象设置为null时), 我需要使它再次可用。

您需要实现该模式

实际上,您有一个表,您将记录放入其中,该表表示对其他表中的记录的“锁定”。当您想要编辑一条记录时,首先检查锁表中是否有锁,然后在域逻辑/UI中做出相应的反应

它不必是数据库,它可以是内存缓存。在我的示例中,当我说“表”时,我指的是一个逻辑表,不一定是数据库表

悲观离线锁防止 完全避免冲突。 它迫使一项业务交易 获取一段数据的锁 在它开始使用它之前, 大多数情况下,一旦你开始了一个 商业交易你可以很漂亮 你肯定能完成它而不被打扰 被并发控制反弹


听起来不错,但是你可能有一些代码的链接吗?不幸的是,我没有一个代码示例的链接,但是如果你从我的链接中读过福勒的书,那里面充满了代码示例。它们甚至可以在internet上下载——企业应用程序体系结构的模式。