miércoles, 24 de febrero de 2010

The specified named connection is either not found in the configuration (Visual Studio 2010 RC)

En versiones anteriores de Visual Studio, como la 2008, había probado la lectura de la configuración (x.config) de una aplicación desde una capa intermedia sin mayor problema.

Por ejemplo una capa de datos que tuviera un ConnectionString (digamos por omisión) en su propio archivo de configuración. Se tendría entonces:

DAL.dll y DAL.dll.config con la conexión al origen de datos.

En tal caso, con las versiones previas, no había ningún problema y sólo si un cliente (Windows, Web) requería redefinir esta conexión entonces simplemente se redefinía la misma, en el archivo de configuración correspondiente al cliente y listo.

Al realizar un ejercicio similar con Visual Studio 2010 RC (entiendo que con el beta pasa lo mismo) y ADO.NET Entity Framework no me era posible conectarme al origen de datos con el siguiente error (o BUG):

System.ArgumentException: The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.

image

El problema sucede en el constructor predeterminado del contexto de mis entidades. En este constructor, al no especificar la conexión, se espera que la misma se lea justamente desde la configuración.

Intenté redefinir la conexión en el archivo de configuración de mi consola y el mismo error sucedía.

La solución la encontré en este foro y es básicamente darle vuelta haciendo dos cosas:

  1. Copiar la cadena de conexión al archivo de configuración de su aplicación cliente o consumidora (Windows, Web). Esto no es opcional.
  2. tomar la conexión del proveedor de System.Data.EntityClient y en la cadena de conexión (connectionString) buscar la parte que se refiere al proveedor su base de datos y cambiar las entidades XML “"” por una comilla simple (‘). Esto es evidentemente un BUG.

Colocar las comillas simples en el archivo de configuración de la capa intermedia tampoco funciona.

Luego de estos dos cambios me funcionó bien. Espero que sea un BUG y no un cambio de paradigma.

Etiquetas de Technorati: ,,