Wednesday, September 15, 2010

DbProviderFactories

DBProvider Factories
Using DBProviderFactories we can actually create a connection without knowing what is the underlying database.


Example DbProviderFactory provider = DbProviderFactories.GetFactory(providerName);The provider name can be placed in config file can have following



I can have a method
public IDbConnection ConnectionProvider(string providerName, string connectionString)
{
DbProviderFactory provider= DbProviderFactories.GetFactory(providerName);
IDbConnection connection=provider.CreateConnection();
connection.ConnectionString=connectionString;return connection
}

this method can be called as follows

IDbConnection connection1=ConnectionProvider(ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings[DATABASE_CONNECTION_CONFIG_KEY]].providerName, ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings[DATABASE_CONNECTION_CONFIG_KEY]].ConnectionString)

DATABASE_CONNECTION_CONFIG_KEY can be "SQLDatabaseConnection" for sql.
Similarly we can have different connection string and different key for Oracle or Access or any other database.

Have also posted the same on msdn community at
http://msdn.microsoft.com/en-us/library/system.data.common.dbproviderfactories.aspx

No comments: