Beispiel #1
0
        /// <summary>
        /// 是否启用删除
        /// </summary>
        /// <param name="databaseName"></param>
        /// <returns></returns>
        public bool EnableSoftDelete(string databaseName)
        {
            var dataBaseConfiguration = DataBaseConfigurations.Find(m => m.DataBaseName == databaseName);

            if (dataBaseConfiguration == null)
            {
                throw new ArgumentException($"数据库:{databaseName} 未配置!查找不到数据库信息");
            }
            return(!dataBaseConfiguration.DisableSoftDelete);
        }
Beispiel #2
0
        /// <summary>
        /// 根据数据库名称 获取数据库连接
        /// </summary>
        /// <param name="databaseName">数据库名称</param>
        /// <returns>数据库连接字符串</returns>
        public string MasterDataBaseConnectionString(string databaseName)
        {
            var dataBaseConfiguration = DataBaseConfigurations.Find(m => m.DataBaseName == databaseName);

            if (dataBaseConfiguration == null)
            {
                throw new ArgumentException($"数据库:{databaseName} 主库连接未配置!");
            }
            return(dataBaseConfiguration.MasterDataBaseConnectionString);
        }
Beispiel #3
0
        public static DbContextOptionsBuilder ResolveDbProvider(
            this DbContextOptionsBuilder optionsBuilder,
            DataBaseConfigurations configurations)
        {
            switch (configurations.Provider)
            {
            case DbProviderType.PostgreSql: return(optionsBuilder.UseNpgsql(configurations.ConnectionString));

            default: throw new NotImplementedException($"{configurations.Provider} db provider is not supported");
            }
        }
Beispiel #4
0
        public static IServiceCollection AddAllServices(this IServiceCollection collection, IConfiguration configuration)
        {
            var databaseConfigurations = new DataBaseConfigurations(
                configuration[$"Databases:{DatabaseType}"],
                configuration.GetConnectionString(DatabaseType)
                );

            collection.AddSingleton(databaseConfigurations);

            collection.AddScoped(typeof(IReadOnlyRepository <>), typeof(ReadOnlyMongoRepository <>));

            return(collection);
        }
Beispiel #5
0
        /// <summary>
        /// 根据数据库名称 获取从库数据库连接
        /// </summary>
        /// <param name="databaseName">数据库名称</param>
        /// <returns>数据库连接字符串</returns>
        public string SlaveDataBaseConnectionString(string databaseName)
        {
            var dataBaseConfiguration = DataBaseConfigurations.Find(m => m.DataBaseName == databaseName);

            if (dataBaseConfiguration == null)
            {
                throw new ArgumentException($"数据库:{databaseName} 从库连接未配置!");
            }

            //随机一个从库连接
            var index = Rd.Next(0, dataBaseConfiguration.SlaveDataBaseConnectionStrings.Count - 1);

            return(dataBaseConfiguration.SlaveDataBaseConnectionStrings[index]);
        }
Beispiel #6
0
 public ReadOnlyMongoRepository(DataBaseConfigurations configurations) : base(configurations)
 {
 }
 internal MigrationDbContext(DataBaseConfigurations configurations) : base(configurations)
 {
 }
Beispiel #8
0
 public CommonDbContext(DataBaseConfigurations configurations) : base(configurations)
 {
 }
 protected GenericMongoRepositoryBase(DataBaseConfigurations configurations)
 {
     Collection = new MongoClient(configurations.ConnectionString)
                  .GetDatabase(configurations.DataBaseName)
                  .GetCollection <T>(configurations.CollectionNameMap[typeof(T)]);
 }
Beispiel #10
0
 protected BaseDbContext(DataBaseConfigurations configurations)
 {
     _configurations = configurations;
 }
 protected BaseDbContext(DataBaseConfigurations configurations)
 {
     _connectionString = configurations.ConnectionString;
 }