[英]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
自己start
和complete
事务。换句话说,它允许在同一个事务中组合多个操作,因此all committed
或all rolled back
为一个。它还允许您指定isolation level
交易。
因此,如果您不需要该功能,那么您可以轻松地仅使用context.SaveChanges()
正如我之前提到的,您必须清楚地标识需要应用Transactions
。
注意:如果您需要处理事务,则必须使用Database.BeginTransaction()
方法。没有其他方法。
参考:使用事务(EF6 以后)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.