/// <summary> /// 初始化DB连接 /// </summary> /// <exception cref="Exception"></exception> public static void Initialize() { var connectionList = ConfigManager.Configger.GetConfig <ConnectionSection>(); foreach (var section in connectionList) { var setting = ConnectionSetting.Create(section.Name, section.ProviderName, section.ConnectionString.Trim()); if (setting.ProviderType == DbProviderType.Unkown) { if (setting.DbLevel != DbLevel.LocalMySql && setting.DbLevel != DbLevel.LocalSql) { TraceLog.WriteWarn("Db connection not found provider type, {0} connectionString:{1}", section.Name, setting.ConnectionString); } continue; } var dbBaseProvider = CreateDbProvider(setting); try { dbBaseProvider.CheckConnect(); } catch (Exception ex) { throw new Exception(string.Format("Not connect to the database server \"{0}\" database \"{1}\".", dbBaseProvider.ConnectionSetting.DataSource, dbBaseProvider.ConnectionSetting.DatabaseName), ex); } dbProviders.AddOrUpdate(section.Name, dbBaseProvider, (k, oldValue) => dbBaseProvider); } }
/// <summary> /// /// </summary> /// <param name="providerName"></param> /// <param name="providerTypeName"></param> /// <param name="connectionString"></param> /// <returns></returns> public static ConnectionSetting Create(string providerName, string providerTypeName, string connectionString) { string key = MathUtils.ToHexMd5Hash(providerTypeName + connectionString); ConnectionSetting setting; if (_settings.TryGetValue(key, out setting)) { return(setting); } setting = new ConnectionSetting(providerName, providerTypeName, connectionString); key = MathUtils.ToHexMd5Hash(setting.ProviderTypeName + setting.ConnectionString); _settings[key] = setting; return(setting); }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <param name="providerTypeName"></param> /// <param name="connectionString"></param> /// <returns></returns> public static DbBaseProvider CreateDbProvider(string name, string providerTypeName, string connectionString) { var setting = ConnectionSetting.Create(name, providerTypeName, connectionString); return(CreateDbProvider(setting)); }
private static DbBaseProvider CreateDbProvider(ConnectionSetting setting) { Type type = TryGetProviderType(setting.ProviderTypeName) ?? typeof(SqlDataProvider); return(type.CreateInstance <DbBaseProvider>(setting)); }
/// <summary> /// Initializes a new instance of the <see cref="DbBaseProvider"/> class. /// </summary> /// <param name="connectionSetting"></param> protected DbBaseProvider(ConnectionSetting connectionSetting) { this.ConnectionSetting = connectionSetting; }