c# - 我们可以将事务范围应用于 1 个请求的整个 API 操作吗
问题描述
我正在使用 Web API 和 EntityFramework 6.2。调度程序将为每个 customerID 调用 API。对于一个请求,API 将执行 10 个操作。现在任何一个操作都失败了,这 10 个操作应该针对该特定请求进行回滚。
解决方案
如果您有一个采用 CustomerID 列表的 Controller 方法,这很简单。只需调用如下方法:
static void DoStuffToCustomers(List<int> customerIds)
{
using (var db = new Db())
using (var tran = db.Database.BeginTransaction())
{
foreach (var id in customerIds)
{
db.DoStuffToCustomer(id);
}
db.SaveChanges();
tran.Commit();
}
}
如果您有 10 个单独的 HTTP 请求,甚至不建议尝试。
推荐阅读
- angular - Angular 9 PrimeNg 如何设置 p-table 边框颜色的样式?
- swift - 使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是什么?
- python - 有没有办法使用中间表中的字段过滤 Django 中的多对多过滤器?
- python - “TypeError:'str'对象不可调用”通过Python在Selenium中使用WebDriverWait for link_text
- flutter - Flutter SharedPreferences 重置数据
- javascript - 如何在javascript中检测精灵对象相互接触?
- python - 如何用uwsgi连接django和nginx?
- apache-kafka-streams - Kafka Stream State Store 分布
- r - 将相关表排列成行
- html - 在文本悬停时显示图像