@@ -22,7 +22,7 @@ public partial class DatabaseManager : IDatabaseManager, IDisposable
2222 {
2323 private DbConnection _connection ;
2424 private bool _explicitlyOpened ;
25- private readonly string _connectionString ;
25+ private string _connectionString ;
2626 private readonly Action < DbCommand > _providerSpecificCommandSettings ;
2727
2828 /// <summary>
@@ -70,6 +70,70 @@ public DatabaseManager(string connectionStringName)
7070 throw new ArgumentException ( "Provider is a required component of the connection string." ,
7171 "connectionStringName" ) ;
7272 }
73+
74+ protected DatabaseManager ( )
75+ {
76+
77+ }
78+
79+ public static DatabaseManager CreateFromConnectionStringName ( string connectionStringName )
80+ {
81+ var manager = new DatabaseManager ( ) ;
82+
83+ manager . _connectionString = ConfigurationManager . ConnectionStrings [ connectionStringName ] . ConnectionString ;
84+
85+ manager . Provider =
86+ DbProviderFactories . GetFactory ( ConfigurationManager . ConnectionStrings [ connectionStringName ] . ProviderName ) ;
87+
88+ if ( manager . Provider == null )
89+ throw new ArgumentException ( "Provider is a required component of the connection string." ,
90+ "connectionStringName" ) ;
91+
92+ return manager ;
93+ }
94+
95+ public static DatabaseManager CreateFromConnectionStringName ( DbProviderFactory provider , string connectionStringName )
96+ {
97+ var manager = new DatabaseManager ( ) ;
98+ manager . Provider = provider ;
99+
100+ manager . _connectionString = ConfigurationManager . ConnectionStrings [ connectionStringName ]
101+ . ConnectionString ;
102+
103+ return manager ;
104+ }
105+
106+ public static DatabaseManager CreateFromConnectionStringName ( string connectionStringName , string providerName )
107+ {
108+ var manager = new DatabaseManager ( ) ;
109+ manager . Provider =
110+ DbProviderFactories . GetFactory ( providerName ) ;
111+
112+ if ( manager . Provider == null )
113+ throw new ArgumentException ( "Provider is a required component of the connection string." ,
114+ "providerName" ) ;
115+
116+ manager . _connectionString = ConfigurationManager . ConnectionStrings [ connectionStringName ]
117+ . ConnectionString ;
118+
119+ return manager ;
120+ }
121+
122+ public static DatabaseManager CreateFromConnectionString ( string connectionString , string providerName )
123+ {
124+ var manager = new DatabaseManager ( ) ;
125+
126+ manager . _connectionString = connectionString ;
127+
128+ manager . Provider =
129+ DbProviderFactories . GetFactory ( providerName ) ;
130+
131+ if ( manager . Provider == null )
132+ throw new ArgumentException ( "Provider is a required component of the connection string." ,
133+ "providerName" ) ;
134+
135+ return manager ;
136+ }
73137
74138 /// <summary>
75139 /// Gets the connection.
@@ -541,4 +605,4 @@ public async Task<T> ExecuteScalarAsync<T>(string commandText,
541605 }
542606
543607#endif
544- }
608+ }
0 commit comments