我目前有一个方法,该方法读取数据以确定是否需要更新,然后将更新推送到数据库(依赖注入)。 由于多个线程在第一次更新之前读取数据,因此该方法受到了很大的打击,并发相关的错误也随之而来。
我使用锁解决了这个问题,效果非常好。我可以使用TransactionScope来做同样的事情吗?如果我使用TransactionScope,它会像锁一样阻塞另一个线程吗?并且,我是否可以像使用锁一样“锁定”特定的“id”(我保留一个字典,为每个“id”存储要锁定的对象)?
我正在使用Entity Framework 5,尽管其被一个仓储和工作单元模式隐藏了起来。