实体框架7中的显式事务

Vi1*_*100 16 c# entity-framework-core asp.net-core

有人知道如何在Entity Framework 7中创建显式事务吗??? 我找到的所有信息都是指EF的第6版.文档也非常不完整,所以有人能提供一个例子吗?

我有一个dbContext,我必须删除一个实体及其相关的对象,然后再次插入它们,但在同一个事务中,所以我总是有一个行的"版本".

Ole*_*leg 16

事务功能包含在EF7中,仅从RC1开始(请参阅语句)..SaveChanges()(或.SaveChangesAsync())的调用应该使用自动交易.然后我想,例如,之前某些实体项的状态应该标记为已删除.

可以通过在数据库内部包含一些操作片段来显式启动事务

using (context.Database.BeginTransaction()) {
    /*do something*/
}
Run Code Online (Sandbox Code Playgroud)

该事务将.Dispose()using块结束时通过调用提交.可以替代地使用

using (var transaction = await context.Database.BeginTransactionAsync()) {
    /*do something*/
    /*one can call
       transaction.Rollback() or transaction.Commit()
      explicitly in the code */
}
Run Code Online (Sandbox Code Playgroud)

它通常都应该在以前版本的Entity Framework中看起来像.例如,请参阅帖子.