/// <summary> /// Deletes the specified provider if present. /// </summary> /// <param name="providerInfo">The provider.</param> public void Remove(DbProviderInfo providerInfo) { Argument.IsNotNull(() => providerInfo); var providerTable = GetProviderTable(); var row = providerTable?.Rows.Cast <DataRow>() .FirstOrDefault(o => o[2] is not null && o[2].ToString() == providerInfo.InvariantName); if (row is not null) { providerTable.Rows.Remove(row); } }
/// <summary> /// Adds the specified provider. /// </summary> /// <param name="providerInfo">The provider.</param> public void Add(DbProviderInfo providerInfo) { Argument.IsNotNull(() => providerInfo); var providerTable = GetProviderTable(); if (providerTable is null) { return; } Remove(providerInfo); providerTable.Rows.Add(providerInfo.Name, providerInfo.Description, providerInfo.InvariantName, providerInfo.AssemblyQualifiedName); }
protected virtual DbProviderInfo GetInfo() { if (_info is not null) { return(_info); } using (var dataTable = DbProviderFactories.GetFactoryClasses()) { var infoRow = dataTable .Rows.OfType <DataRow>() .FirstOrDefault(x => x["InvariantName"]?.ToString() == ProviderInvariantName); if (infoRow is null) { return(null); } _info = infoRow.ToDbProviderInfo(); return(_info); } }
public static DbProviderInfo ToDbProviderInfo(this DataRow row) { Argument.IsNotNull(() => row); var providerInfo = new DbProviderInfo { Name = row["Name"]?.ToString(), Description = row["Description"]?.ToString(), InvariantName = row["InvariantName"]?.ToString(), AssemblyQualifiedName = row["AssemblyQualifiedName"]?.ToString() }; if (string.IsNullOrWhiteSpace(providerInfo.Name)) { providerInfo.Name = row["InvariantName"]?.ToString(); if (string.IsNullOrWhiteSpace(providerInfo.Name)) { providerInfo.Name = "- nameless -"; } } return(providerInfo); }
public static DbProvider GetProvider(this DbProviderInfo dbProviderInfo) { Argument.IsNotNull(() => dbProviderInfo); return(DbProvider.GetRegisteredProvider(dbProviderInfo.InvariantName)); }
public static DbConnectionString CreateConnectionString(this DbProviderInfo dbProviderInfo, string connectionString = null) { Argument.IsNotNull(() => dbProviderInfo); return(dbProviderInfo.GetProvider()?.CreateConnectionString(connectionString)); }
public static void UnregisterProvider(DbProviderInfo providerInfo) { Argument.IsNotNull(() => providerInfo); ProviderFactoryRepository.Remove(providerInfo); }