在 ASP.NET Web API 中使用 OData 的官方指南中,修改数据库的示例似乎都包含竞争条件。例如,示例UpdateEntity
方法调用_context.Products.Any
后跟_context.SaveChanges
,但数据库可能在调用之间发生了变化。
这与 Visual Studio 为带有实体框架控制器的新 Web API 生成的样板代码不同,后者包含DbUpdateConcurrencyException
. 是否有类似的模式是 OData 更新方法的最佳实践?
Any
此外,随后的调用SaveChanges
涉及两次数据库往返。有没有最好的做法只做一个?