6

Sto sviluppando un'applicazione WPF che dipende da Entity Framework per l'accesso ai dati. Alla prima installazione devo creare una nuova stringa di connessione basata sull'input dell'utente, quindi aggiornare App.Config in base a ciò.C# - Entity Framework ConnectionString non si aggiornerà dopo aver modificato App.Config in runtime

Il problema è: dopo aver aggiornato il file App.Config, Entity Framework non rileva la modifica e utilizza il vecchio ConnectionString all'avvio per creare un'istanza di DbContext.

Come aggiornare l'impostazione ConnectionString di Entity Framework in fase di esecuzione?

+0

Avete un app.config nel l'applicazione distribuita? –

+0

Sì. Executable.exe.config – evolon

+0

Ho avuto questo problema. le mie modifiche in connectiontring, nome del database, non sono state applicate a causa dell'aggiornamento di edmx. Chiudo la soluzione e la riapre e funziona. – Mohammadreza

risposta

7

Entity Framework caches connection string, non esiste un metodo per forzare un aggiornamento.

Da this article: stringa di connessione data in DbContext costruttore non è memorizzato nella cache quindi è possibile utilizzare questo come soluzione alternativa:

public class MyContext : DbContext { 
    public MyContext() 
     : base(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString) 
    { 
    } 
} 
+0

Grazie, Collegamento molto utile tra l'altro. Ma sulla base dei commenti scritti in precedenza sul documento che dice "Le modifiche manuali a questo file verranno sovrascritte se il codice viene rigenerato.", Le modifiche non svaniranno più tardi? – evolon

+0

Se si ricompila l'applicazione ... sì ma non è qualcosa che accadrà su un'applicazione distribuita. –

+1

Assicurarsi di aggiungere: "using System.Configuration" allo spazio dei nomi. – Scooter

Problemi correlati