【发布时间】:2020-01-10 17:33:24
【问题描述】:
我们目前正在开发一个 .Net Core 控制台应用程序,该应用程序使用 Web 服务来获取数据并将其异步插入数据库。
Web 服务返回一个对象 - 为了简化问题,我们称它为 Orders - 有一个 Country、Date 和 Ordered按字段。在我们的数据库中,我们有一个 Countries 和 Orders 表,它们具有一对多的关系。
当应用启动时,它会将国家/地区列表存储在静态列表属性中。当返回来自 web 服务的新订单时,检查当前 List 属性中是否存在 country 字段以从中获取 Id 字段。如果它不存在,则将一条新记录插入到数据库中,并使用辅助方法更新 List 属性。这种情况在单线程中没有任何问题。但是,当我们发出 Web 服务请求并异步更新数据库时,每个异步任务都会独立更新 List 属性,这会导致多个国家/地区值具有相同的名称。
是否有一种最佳做法是仅在插入新记录时更新国家/地区列表并防止不同任务插入相同的值?
亲切的问候
【问题讨论】:
标签: entity-framework entity-framework-core ef-core-3.0