Я занимаюсь разработкой веб-приложения .NET CORE MVC 2.1 с объявленным в DLL DbContext (EF Core 2.1).
Я хотел бы настроить контекст, используя IServiceCollection.AddContext<GladContext
>, но если я не ALSO настраивает его DbContext.OnConfiguring(DbContextOptionsBuilder optionsBuilder)
Мне сказали, что Для этого DbContext * 1008 не настроен поставщик базы данных * несмотря на то, что конструктор принимает DbContextOptions<GladContext>
public GladContext(DbContextOptions<GladContext> options, IGladConnectionStringProvider connectionStringProvider) : base(options)
{
_connectionStringProvider = connectionStringProvider;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
GladOptionsBuilderHelper.ConfigureDefaultOptionsBuilder(optionsBuilder, _connectionStringProvider.ConnectionString);
base.OnConfiguring(optionsBuilder);
}
IGladConnectionStringProvider
- мой текущий обходной путь, и это приемлемо, если бы его не было, потому что теперь мне нужно настроить DbContextOptionsBuilder
и DbContextOptionsBuilder<GladContext>
public static class GladOptionsBuilderHelper
{
public const string GladMigrationsHistory = "__GladMigrationsHistory";
public static DbContextOptionsBuilder<GladContext> CreateDefaultTypedOptionsBuilder(string connectionString)
{
var optionsBuilder = new DbContextOptionsBuilder<GladContext>();
optionsBuilder
.UseSqlServer(connectionString, options =>
{
options.EnableRetryOnFailure();
options.MigrationsHistoryTable(GladMigrationsHistory, EntityBase.SchemaName);
})
.ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning));
return optionsBuilder;
}
public static void ConfigureDefaultOptionsBuilder(DbContextOptionsBuilder optionsBuilder, string connectionString)
{
optionsBuilder
.UseSqlServer(connectionString, options =>
{
options.EnableRetryOnFailure();
options.MigrationsHistoryTable(GladMigrationsHistory, EntityBase.SchemaName);
})
.ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning));
}
}
DbContextOptionsBuilder<GladContext>
используется в IDesignTimeDbContextFactory<GladContext>
Можете ли вы сказать мне, как использовать AddContext
для настройки GladContext
или как построить DbContextOptionsBuilder
из DbContextOptionsBuilder<GladContext>
или наоборот?