2012-06-26 12 views
13

Estoy buscando usar CloudConfigurationManager para poder aprovechar los archivos de configuración de Azure. Deseo usar una cadena de conexión. Agregué una cadena a mi Cloud.cscfg para configurar Entity Framework Context.¿Es así como establecer Cadena de conexión contextual usando CloudConfigurationManager?

estaba configurando mi contexto como éste

public DomainContext() 
    : base("ContextConnectionString") 

Esto estaba tomando el ContextConnectionString del Web.config

he cambiado el constructor de contexto a esta

public DomainContext() 
    : base(CloudConfigurationManager.GetSetting("ContextConnectionString")) 

Y ahora funciona .

¿Hay alguna manera más elegante de decirle al constructor de mi contexto que use Azure cscfg primero?

+0

Ahora hay una herramienta VS en la Galería VS que permite las transformaciones de configuración para los archivos app.config. Aquí está el enlace: https://visualstudiogallery.msdn.microsoft.com/579d3a78-3bdd-497c-bc21-aa6e6abbc859 –

Respuesta

10

No hay una solución más elegante en este momento, no. De hecho, esto es bastante más elegante de lo que habría tenido que haber escrito hace un mes. El CloudConfigurationManager es una clase que es nueva en el SDK 1.7 y fue creada porque previamente no había soporte incorporado para hacer este tipo de cosas. Si quería hacer lo que CloudConfigurationMangager tiene ahora, debe crear su propia clase, que era pretty common.

2

¿Sería capaz de publicar una muestra del código?

CloudConfigurationManager debe comprobar primero si el código se está ejecutando en una función de Windows Azure y, de ser así, intentar recuperar el valor de configuración del archivo ServiceConfiguration.cscfg (que se implementa con la función). Si no se ejecuta en una función, CloudConfigurationManager debe volver al archivo .config (web.config o app.config) de la aplicación. En cualquier caso, creo que se devuelve NULL si no se encuentra el valor.

Con la cadena de conexión recuperada del archivo .cscfg (suponiendo que el código se ejecuta en una función web de Windows Azure), el valor podría pasarse a una sobrecarga del constructor de EF que establecería la cadena de conexión.

Cuestiones relacionadas