Mira, en ese escenario tienes 2 caminos, hacerlo con el Enterprise Library (
EL) (la liga que te mande usando obviamente el DataAccess) ya que trabaja con un archivo de configuracion dependiendo del tipo de base de datos que quieras, la cuestion es que con el
EL no puedes usar oledb ni odbc tan facilmente ya que tendrías que hacer varias implementaciones por lo regular las implementaciones que haces es mediante los connectors directos como sqclient, oracleclient, mysqlclient, etc..etc.. y realmente funcionan de maravila..
Ahora el segundo camino es jugar un poco con la reflection e interfaces para que mediante las aseemblies sepas que connector es el que vas a usar para tu BD.. es una tarea tal vez un poco pesada implementarla pero también es una forma bastante limpia de hacerlo..
ejemplo:
En tu web.config guardas los namespaces de tus connectors para saber mas adelante con la aplicacion cual utilizar...
tener una interfaz que tenga los metodos que necesites tanto para Oracle como SQL Server...(IDAL por ejemplo) y en cada una de tus clases tener la interfaz correspondiente.. ejemplo:
Cita: public class Product : IProducto //implemento la interfaz
{
}
Antes de llegar a eso ya debes saber si es sql u oracle mediante la reflection algo así:
Cita: public class Product {
public static TuNameSpace.IDAL.IProduct Create() {
string path = System.Configuration.ConfigurationSettings.AppSett ings["Valor"];
//de hecho como lo vas a hacer dinamico no será necesario que lo guardes
//en el webconfig si no en una constante
string className = path + ".Product"; //cargo la referencia el nombre de mi clase (para sql server u orcale)
// Cargo dinamicamente la clase mediante reflection
return (TuNameSpace.IDAL.IProduct)Assembly.Load(path).CreateInstance(className);
}
}
Es un ejemplo muy general, la verdad tendría que explicarte toda la implementación pero es mucho, si no entiendes lo que te mando te recomiendo que leas un poco acerca de design patterns, interfaces y reflection porque no quisera meterte en conceptos que pueden darte vueltas en la cabeza.
Espero haber sido mas o menos claro.
Salu2