Skip to content
This repository was archived by the owner on Dec 23, 2017. It is now read-only.

Commit 7e35773

Browse files
author
Ovan Crone
committed
Update DatabaseManager.cs
1 parent e43d069 commit 7e35773

File tree

1 file changed

+66
-2
lines changed

1 file changed

+66
-2
lines changed

src/Susanoo.Core/DatabaseManager.cs

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)