如何使用EF7 RC2抑制环境事务警告

时间:2016-06-14 18:58:47

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

如何使用EF7 RC2抑制环境事务警告?

无法找到 SuppressAmbientTransactionWarning()方法。

2 个答案:

答案 0 :(得分:11)

虽然问题与RC2有关,但截至2016年10月16日,这对我有用,希望对其他人有用:

services.AddDbContext<OpenDataContext>(options =>
   {
       options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
       options.ConfigureWarnings(x => x.Ignore(RelationalEventId.AmbientTransactionWarning));
   });

在上面的集成测试设置类中使用。

答案 1 :(得分:0)

您可以在DbContext(旧版本)中禁用它:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
     optionsBuilder.UseSqlServer(@"Server=.\;Database=EFTutorial;Trusted_Connection=True;").SuppressAmbientTransactionWarning();
     base.OnConfiguring(optionsBuilder);
}

如果你在json中有连接字符串:

var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]).SuppressAmbientTransactionWarning();

在新版本中:

  var optionsBuilder = new Microsoft.EntityFrameworkCore.DbContextOptionsBuilder();
    var extension = new SqlServerOptionsExtension(optionsBuilder.Options.GetExtension<SqlServerOptionsExtension>())
    {
        ThrowOnAmbientTransaction = false
    };

    ((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(extension);