我可以在我的 Web API 中调用 DBContext.SaveChangesAsync 并假设此任务将在我的方法 returns 中继续吗?

Can I call DBContext.SaveChangesAsync in my Web API and assume this task will continue while my method returns?

我有一个基本的 Web API,方法如下:

[Route("/Add/{Data}", Name = "AddData")]
[HttpPost]
public void InsertData(DataObject Data)
{
    DataContext.DataTable.Add(DataObject);
    DataContext.SaveChangesAsync(); // <===== This!
}

只是想确保这会按预期工作,因为在此方法结束时 SaveChangesAsync() 任务可能仍在执行。我能否依靠它来正常工作,这样我的网络服务响应速度可能会稍微快一些?

虽然这可能很诱人,但不要这样做。

线程仍将保留并发送一个响应,但保存任何错误都可能导致应用不稳定 - 您可能会收到客户看不到的失败日志。如果有其他操作需要该数据,它们将在“不知道为什么”的情况下失败。调试将是一场噩梦。

将事务保留为事务 - 让服务器对您正在执行的操作给出真实的响应。