如何使用EF7 RC2抑制环境事务警告?
无法找到 SuppressAmbientTransactionWarning()方法。
答案 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);