我们正在创建一个API,要删除端点中的实体,我们只接收ID并附加一个新实体,以避免在数据库中进行搜索
控制器:
[HttpDelete("{id:guid}")]
public async Task<IActionResult> DeleteAsync([FromRoute] Guid id)
存储库:
var document = new Document
{
Id = id,
DeletedAt = DateTime.UtcNow,
};
this.CrmContext.Attach(document);
this.CrmContext.Entry(document).Property(p => p.DeletedAt).IsModified = true;
await this.CrmContext.SaveChangesAsync().ConfigureAwait(false);
问题是,我们添加了RowVersion列,并引发了DbUpdateConcurrencyException,在所有与该问题类似的示例和响应中,答案是首先从数据库中读取值。
有没有一种方法可以使这项工作无需先查询数据库?
谢谢