小编use*_*834的帖子

ASP.NET Web API C#并发请求导致数据库重复

我有一个WebApi异步控制器方法,该方法调用另一个异步方法,该方法首先进行空检查以查看记录是否存在,以及是否不将其添加到数据库中。问题是,如果我说同时有3个请求同时在各个线程中发生所有空检查(我假设),我将获得2个重复的条目。例如:

 public async void DoSomething()
{
    var record = {query that returns record or null}
    if (record == null)
    {
        AddNewRecordToDatabase();
    }   
}
Run Code Online (Sandbox Code Playgroud)

...这似乎是一件很普通的事情,也许我缺少了一些东西,但是如何防止这种情况发生呢?当然,我必须故意使它创建重复项,但是不允许这样做。

提前致谢,

背风处

c# concurrency asynchronous asp.net-web-api2

5
推荐指数
1
解决办法
795
查看次数

标签 统计

asp.net-web-api2 ×1

asynchronous ×1

c# ×1

concurrency ×1