![](/img/trans.png)
[英]Behavior of unit of work + entity framework + transaction without explicit rollback on exception
[英]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.