using System; using System.Collections.Generic; using ASC.Common; using ASC.Core.Common.EF.Model; using Microsoft.EntityFrameworkCore; namespace ASC.Core.Common.EF { public class MySqlUserDbContext : UserDbContext { } public class PostgreSqlUserDbContext : UserDbContext { } public class UserDbContext : BaseDbContext { public DbSet Users { get; set; } public DbSet UserSecurity { get; set; } public DbSet Photos { get; set; } public DbSet Acl { get; set; } public DbSet Groups { get; set; } public DbSet UserGroups { get; set; } public DbSet Subscriptions { get; set; } public DbSet SubscriptionMethods { get; set; } protected override Dictionary> ProviderContext { get { return new Dictionary>() { { Provider.MySql, () => new MySqlUserDbContext() } , { Provider.PostgreSql, () => new PostgreSqlUserDbContext() } , }; } } protected override void OnModelCreating(ModelBuilder modelBuilder) { ModelBuilderWrapper .From(modelBuilder, Provider) .AddSubscriptionMethod() .AddUser() .AddAcl() .AddUserSecurity() .AddUserPhoto() .AddDbGroup() .AddUserGroup() .AddSubscription(); } } public static class UserDbExtension { public static DIHelper AddUserDbContextService(this DIHelper services) { return services.AddDbContextManagerService(); } } }