繁体   English   中英

C# .NET API 多个 save.changes() 事务

[英]C# .NET API multiple save.changes() transactions

我想确认这是否是在 .NET API 中处理 EF6 事务的最佳方式。 因此,如果 API 仅更改单个实体,例如更新用户拥有的土豆中的土豆数量。 我不需要用

using (var dbContextTransaction = context.Database.BeginTransaction()) {}

因为如果不能,EF 将不会提交更改。 但是如果单个 API 端点为 expl 更新多个实体。 API 端点 createSoup() 从用户中删除多个蔬菜并为用户创建一个新的实体汤。 然后我确实需要将它与提到的语句一起括起来,以防它删除了蔬菜,但无法创建汤实体,反之亦然。 没有其他办法了吗? 因为将所有 api 端点函数(编辑多个实体)放在这个语句中似乎有点过分。

您需要确定应用程序上应用Database.BeginTransaction()方法的操作。

Database.BeginTransaction()方法的功能是,
您可以在现有的DbContext自己startcomplete事务。换句话说,它允许在同一个事务中组合多个操作,因此all committedall rolled back为一个。它还允许您指定isolation level交易。

因此,如果您不需要该功能,那么您可以轻松地仅使用context.SaveChanges()正如我之前提到的,您必须清楚地标识需要应用Transactions

注意:如果您需要处理事务,则必须使用Database.BeginTransaction()方法。没有其他方法。

参考:使用事务(EF6 以后)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM