简体   繁体   English

实体框架7回滚方法

[英]Entity Framework 7 Rollback method

How to roll back an transaction in Entity Framework 7? 如何在Entity Framework 7中回滚事务?

In the old version, we have 在旧版本中,我们有

            try
            {
                dataContext.ChangeTracker.DetectChanges();
                dataContext.SaveChanges();
            }
            catch (Exception e)
            {
                dataContext.Database.CurrentTransaction.Rollback();
                Debug.WriteLine(e.Message);
            }

Now I use 现在我用

"EntityFramework.Commands": "7.0.0-rc1-final" “EntityFramework.Commands”:“7.0.0-rc1-final”

It doesn't have the method. 它没有这个方法。

The recommended transaction pattern in 7.0.0-rc1-final is the same as in EF6: 7.0.0-rc1-final推荐的事务模式与7.0.0-rc1-final中的相同:

using (var transaction = context.Database.BeginTransaction())
{
    try
    {
        /*do something*/
        context.SaveChanges();

        transaction.Commit();
    }
    catch (Exception ex)
    {
        transaction.Rollback();
    }
}

Also EF7 provides async API (EF6 not): EF7也提供异步API(不支持EF6):

using (var transaction = await context.Database.BeginTransactionAsync())

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

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