如何从dbcontext获取当前事务

时间:2016-12-30 16:49:49

标签: .net-core entity-framework-core

在Entity Framework 6中,在DbContext类下,您可以通过context.Database.CurrentTransaction访问当前事务。但是,这个API在EF.Core中似乎没有。如何从EF.Core中的dbcontext中检索当前事务对象?

2 个答案:

答案 0 :(得分:5)

EF Core仍然缺少许多EF6功能,但(慢慢地)正在迎头赶上。

在这方面,我不能说早期版本,但在最新的(到目前为止)v1.1.0中,DbContext.Database CurrentTransaction属性存在,所以你可以使用相同的代码在EF6中访问它。

答案 1 :(得分:-3)

没有一种方法可以在DbContext的Database属性中检索当前事务,无论如何使用EF Core启动事务,你可以添加以下代码:

using (var transaction = dbContext.Database.BeginTransaction())
{
    try
    {
        // add code for ef core

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

        throw ex;
    }
}

请告诉我这是否有用。