Pregunta

Tengo un servidor SQL con 50 bases de datos. Cada uno tiene exactamente el mismo esquema. He utilizado el impresionante subsónico 2.2 DAL crear la base de uno de ellos.

necesito bucle a través de una lista de nombres de bases de datos y conectarse a cada uno de ellos y llevar a cabo una actualización de uno en uno.

Si hay una forma de alterar la forma en usos subsónicas la cadena de conexión. Creo que tendría que almacenar la cadena de conexión en la memoria de esa manera se puede seguir cambiando.

¿Es esto posible?

He intentado hacer un

ConfigurationManager.ConnectionStrings["theConnStrName"].ConnectionString = updated-connection-string-here;

.. pero eso no funcionó

Gracias!

¿Fue útil?

Solución

subsónico fue diseñado principalmente para una base de datos única. He hecho varias bases de datos de un par de maneras. Yo había publicado una muestra completa para la creación de los proveedores sobre la marcha en los antiguos foros de subsónica. Esos mensajes se han ido ahora. Lo que se puede intentar es configurar un proveedor en el archivo de configuración (yourProviderName) con una cadena de conexión ficticia simplemente para inicializar subsónico, a continuación, establecer la cadena de conexión real como sea necesario en el código. Esto sólo funciona con una base de datos a la vez, pero creo que esto es lo que necesitaba. Si desea utilizar varias bases de datos al mismo tiempo, e implica más código y algunos cambios en el núcleo 2.x subsónica.

DataProvider provider = DataService.GetInstance(yourProviderName);
foreach(string connString in connectionStrings)
{
    provider.DefaultConnectionString = connString;
    DataService.Provider = provider;
    // ... do stuff
}

Otros consejos

No creo que sea fácil de solucionar sin crear un proveedor SubSonic para cada base de datos.

En su lugar yo pondría la SubSonic de código como un proyecto de la solución y depurar mi camino a la mejor y más limpio lugar para extender el código wwith algún tipo de cadena connnection lista de diccionarios y funcionalidad para configurar el que desea a una tiempo dado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top