2012-06-26 12 views
13

Sto cercando di utilizzare CloudConfigurationManager in modo da sfruttare i file di configurazione di Azure. Voglio usare una stringa di connessione Ho aggiunto una stringa al mio Cloud.cscfg per configurare il contesto di Entity Framework.Come impostare la stringa di connessione al contesto con CloudConfigurationManager?

stavo configurando mio contesto come questo

public DomainContext() 
    : base("ContextConnectionString") 

Questo stava prendendo il ContextConnectionString dal web.config

ho cambiato il costruttore Contesto a questo

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

e funziona ora .

Esiste un modo più elegante per dire al costruttore del contesto di utilizzare prima cscfg di Azure?

+0

Ora nella VS Gallery è disponibile uno strumento VS che abilita le trasformazioni di configurazione per i file app.config. Ecco il link: https://visualstudiogallery.msdn.microsoft.com/579d3a78-3bdd-497c-bc21-aa6e6abbc859 –

risposta

10

Non c'è una soluzione più elegante al momento, no. In effetti questo è un po 'più elegante di quello che avresti dovuto scrivere un mese fa. Il CloudConfigurationManager è una classe che è nuova nell'SDK 1.7 ed è stata creata perché in precedenza non esisteva il supporto integrato per fare questo genere di cose. Se volevi fare ciò che CloudConfigurationMangager fa ora dovevi creare la tua classe, che era pretty common.

2

Sareste in grado di inviare un esempio del codice?

CloudConfigurationManager deve innanzitutto verificare se il codice è in esecuzione in un ruolo di Windows Azure e, in tal caso, tentare di recuperare il valore di configurazione dal file ServiceConfiguration.cscfg (distribuito con il ruolo). Se non è in esecuzione in un ruolo, CloudConfigurationManager dovrebbe ripristinare il file .config (web.config o app.config) dell'applicazione. In entrambi i casi, credo che NULL venga restituito se il valore non viene trovato.

Con la stringa di connessione che recupera dal file .cscfg (supponendo che il codice sia in esecuzione in un ruolo Web di Windows Azure), il valore potrebbe essere passato a un overload di costruttore EF che imposterà la stringa di connessione.

Problemi correlati