如何使用 EF 在 asp.net MVC 中进行多种方法的一项事务
Posted
技术标签:
【中文标题】如何使用 EF 在 asp.net MVC 中进行多种方法的一项事务【英文标题】:How to make several methods one transaction in asp.net MVC using EF 【发布时间】:2021-06-29 06:50:31 【问题描述】:我想执行 2 个动作并使它们成为原子的。 这就是我想要实现的目标:
public IActionResult DataUserForm()
return View();
[HttpPost]
public IActionResult Handler(data)
/*
Do something with data
*/
return RedirectToAction("Index");
DataUserForm 视图向用户发送一个表单,用户可以在其中写入一些数据。然后他被重定向到处理程序,它执行一些业务逻辑并重定向到索引主页。我想把所有这些动作变成一个交易
EF 中已经有 BeginTransaction() 方法。但它只能与特定的代码块一起使用,而不能在方法中使用。我也不能将事务作为参数传递给操作,因为提交按钮和 c# 对象存在一些问题
【问题讨论】:
这感觉像是一个 XY 问题。在 Web 服务中,每个 Web 请求都在自己的范围内。为什么要尝试在两者之间保持一个开放的范围来分隔 Web 请求? 【参考方案1】:您的 DbContext 是一个 scoped 服务,因此每个 Web 请求都有一个实例。
【讨论】:
以上是关于如何使用 EF 在 asp.net MVC 中进行多种方法的一项事务的主要内容,如果未能解决你的问题,请参考以下文章
我们如何使用 EF 在 ASP.Net MVC 应用程序中创建 3 层架构?
如何在 Asp.Net 5 (MVC 6) 中使用实体框架 6.x
如何仅保存/更新父实体而不将其子实体保存在 asp.net mvc 的 EF6 中?