實體框架7回滾方法

asp.net-core c# entity-framework-core

如何在Entity Framework 7中回滾事務?

在舊版本中,我們有

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

現在我用

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

它沒有這個方法。

一般承認的答案

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();
    }
}

EF7也提供異步API(不支持EF6):

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


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因