/// <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); }
/// <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); }
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"); } }
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); }
/// <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]); }
public ReadOnlyMongoRepository(DataBaseConfigurations configurations) : base(configurations) { }
internal MigrationDbContext(DataBaseConfigurations configurations) : base(configurations) { }
public CommonDbContext(DataBaseConfigurations configurations) : base(configurations) { }
protected GenericMongoRepositoryBase(DataBaseConfigurations configurations) { Collection = new MongoClient(configurations.ConnectionString) .GetDatabase(configurations.DataBaseName) .GetCollection <T>(configurations.CollectionNameMap[typeof(T)]); }
protected BaseDbContext(DataBaseConfigurations configurations) { _configurations = configurations; }
protected BaseDbContext(DataBaseConfigurations configurations) { _connectionString = configurations.ConnectionString; }