有人知道如何在Entity Framework 7中创建显式事务吗??? 我找到的所有信息都是指EF的第6版。文档也非常不完整,所以有人能提供一个例子吗?
我有一个dbContext,我必须删除一个实体及其相关的对象,然后再次插入它们,但是在同一个事务中,所以我总是会有一个"版本&#34 ;行。
答案 0 :(得分:16)
交易功能包含在EF7中,仅从RC1开始(参见the statement)。 .SaveChanges()
(或.SaveChangesAsync()
)的调用应使用自动交易。然后我想,例如,之前某些实体项的状态应该标记为已删除。
可以通过在
内的数据库中包装一些操作片段来显式启动事务using (context.Database.BeginTransaction()) {
/*do something*/
}
该事务将在.Dispose()
块结束时通过调用using
来提交。可以选择使用
using (var transaction = await context.Database.BeginTransactionAsync()) {
/*do something*/
/*one can call
transaction.Rollback() or transaction.Commit()
explicitly in the code */
}
它通常都应该在以前版本的Entity Framework中看起来像。例如,请参阅the post。