C# 如何在使用数据库的WCF服务中处理并发性

C# 如何在使用数据库的WCF服务中处理并发性,c#,.net,database,wcf,concurrency,C#,.net,Database,Wcf,Concurrency,您好:)我是WCF的新手,这是我第一次处理任何类型的并发,所以请耐心听我说 我想做的是拥有一个服务实例,它将被多个客户端(不超过10个或11个)使用。我希望客户端在使用服务操作时互相等待。这样我就可以避免数据库中条目的错误更新。操作速度足够快,因此性能不会受到太大影响。现在我不确定,但据我所知,为了实现这一点,我应该使用带有并发模式的单例服务?任何关于如何实现这一目标的全面阅读都是受欢迎的 另外,我知道可能有更好、更优雅的方法来处理并发性,但我的时间非常短,如果我理解正确的话,这种方法似乎是最简

您好:)我是WCF的新手,这是我第一次处理任何类型的并发,所以请耐心听我说

我想做的是拥有一个服务实例,它将被多个客户端(不超过10个或11个)使用。我希望客户端在使用服务操作时互相等待。这样我就可以避免数据库中条目的错误更新。操作速度足够快,因此性能不会受到太大影响。现在我不确定,但据我所知,为了实现这一点,我应该使用带有并发模式的单例服务?任何关于如何实现这一目标的全面阅读都是受欢迎的


另外,我知道可能有更好、更优雅的方法来处理并发性,但我的时间非常短,如果我理解正确的话,这种方法似乎是最简单、最快的实现方法。

这里最糟糕的是单例服务

数据库引擎(大多数)非常适合并发调用。您想限制其并发功能的目的是什么

对您来说,最好的方式是每次呼叫的无状态WCF服务。

为了数据一致性,请使用。为了简化这一点,您可以使用任何ORM,例如。

我的问题不同,但我发现了一些信息链接,我想我同意丹尼斯的观点,但我仍在学习。谢谢,我将阅读这些链接。但是我仍然非常喜欢单例+单并发。我的定量是:写入将是1:1,因此多个客户端可能会尝试同时处理同一个条目,使用乐观的方法,第一个客户端将具有正确的值,但另一个客户端已经具有错误的值。如果设置为Singleton,那么为什么要问。数据库是用来处理并发性的。如果你需要一个独占锁,那么就使用一个独占锁。我想知道Singleton+ConcurrencyMode.Single组合是否能像上面描述的那样工作。如果我的问题问得不清楚,很抱歉。我认为乐观并发在我的情况下不是一个好的选择。当另一个客户端正在计算值以更新同一个条目时,一个客户端可能会尝试访问该条目。然后第一个客户机将使用一个已经错误的值。