【发布时间】:2021-08-24 01:48:52
【问题描述】:
如果数据库中不存在名称,我想要创建数据,但是,当我使用 ajax 请求测试代码时,它有时会创建多个具有相同名称的数据。 我在想,原因是第一个数据和第二个数据同时到达数据库。有没有办法解决这个问题?
[HttpPut]
public async Task<IActionResult> Put(string name)
{
if (name == null)
return BadRequest();
View view = await _context.Views
.FirstOrDefaultAsync(v => v.PageName.ToLower() == name.ToLower());
if (view != null)
{
view.NumOfViews++;
await _context.SaveChangesAsync();
return Ok(new { view, status = 200 });
}
else
{
//not exist in db create a new one
View newView = new View
{
PageName = name,
NumOfViews = 1
};
view = await _viewHelper.CreateAsync(newView);
return CreatedAtAction("Put",new { status=201, view});
}
}
【问题讨论】:
-
在 Name 上创建唯一索引?
标签: c# sql asp.net .net webapi