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

How to suppress ambient transaction warning with EF7 RC2

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

找不到 SuppressAmbientTransactionWarning() 方法。

您可以在 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);

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

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

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