c# - 如何在长逻辑流中保持数据库并发
问题描述
我们首先使用实体框架代码将报表保存到 SQL 数据库,许多对象具有多对多关系,因此数据被拆分到不同的表中。为了防止数据重复,我们首先检查某个对象是否已经保存,然后我们将关系添加到数据库中。
例如,对象 Person 可以有多个国家,对象 Country 可以容纳多个 Person 对象。
在保存流程开始时,我们查询数据库中的现有国家,如果存在则在 Person 对象中更新它们,如果不存在则创建它们。
当我们同时只有一个保存过程时,此流程运行良好,但现在我们需要同时支持多次,我担心一个线程会在另一个线程检查现有国家/地区之后立即添加一个新国家/地区。
我想知道有哪些好的做法可以在对性能影响最小的情况下解决这个问题。
谢谢!