繁体   English   中英

实体框架7中的显式事务

[英]Explicit transaction in Entity Framework 7

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

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

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

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

using (context.Database.BeginTransaction()) {
    /*do something*/
}

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

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

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

暂无
暂无

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

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