EF Core创建数据库行(如果不存在)

时间:2017-12-01 06:48:05

标签: entity-framework transactions entity-framework-core optimistic-concurrency database-concurrency

如果id已经不存在,我就点击我的web服务在数据库中保存一行。所以我分两步完成。首先,我在上下文中运行select以返回具有给定id的实体。如果返回null,我创建一个新实体并调用saveChanges。这几乎总是完美无缺。但是,当有多个请求同时命中网络服务器时,有可能在几乎同时运行2个请求。当发生这种情况时,他们都有可能创建一行。这实际上正在发生。

你会如何处理这种情况?

P.S。我使用的是EntityFramework Core。

1 个答案:

答案 0 :(得分:-1)

嗯,这不是一个优雅的解决方案,但我最终创建了一个存储过程来处理它。