using ASC.Common; using ASC.Core.Common.EF.Model; using ASC.Core.Common.EF.Model.Resource; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; namespace ASC.Core.Common.EF.Context { public class MySqlResourceDbContext : ResourceDbContext { } public class PostgreSqlResourceDbContext : ResourceDbContext { } public class ResourceDbContext : BaseDbContext { public DbSet Authors { get; set; } public DbSet ResAuthorsFiles { get; set; } public DbSet ResAuthorsLang { get; set; } public DbSet ResCultures { get; set; } public DbSet ResData { get; set; } public DbSet ResFiles { get; set; } public DbSet ResReserve { get; set; } protected override Dictionary> ProviderContext { get { return new Dictionary>() { { Provider.MySql, () => new MySqlResourceDbContext() } , { Provider.Postgre, () => new PostgreSqlResourceDbContext() } , }; } } protected override void OnModelCreating(ModelBuilder modelBuilder) { ModelBuilderWrapper .From(modelBuilder, Provider) .AddResAuthorsLang() .AddResAuthorsFile() .AddResCultures() .AddResFiles() .AddResData() .AddResAuthors() .AddResReserve(); } } public static class ResourceDbExtension { public static DIHelper AddResourceDbService(this DIHelper services) { return services.AddDbContextManagerService(); } } }