如何在长逻辑流中维护数据库并发性



我们首先使用实体框架代码将报表保存到SQL数据库,许多对象具有多对多关系,因此数据被拆分到不同的表中。 为了防止数据重复,我们首先检查某个对象是否已保存,然后再添加与数据库的关系。

例如,具有可以具有多个国家/地区的对象 Person 和可以包含多个 Person 对象的对象国家/地区。

在保存流程开始时,我们在数据库中查询现有国家/地区,并在 Person 对象中更新它们(如果存在(,如果不存在,则创建它们。

当我们同时只有一个保存过程时,此流程运行良好,但现在我们需要同时多次支持它,我担心一个线程会在另一个线程检查现有国家/地区之后立即添加新的国家/地区。

我想知道有什么好的做法可以解决这个问题,同时将对性能的影响降到最低。

谢谢!

这听起来不像您充分利用所选ORM的功能。如果根据库的文档使用库,则关系将在返回的实体中表示。因此,只要EntityID保持不变,更新单个实体的多对多关系就会更新所有其他相关实体。

如果您仍然无法信任此关系的完整性,我建议您使用实体框架的批量更新功能

最新更新