Ok, voglio ricreare un progetto che ho creato utilizzando EF 4.1 per EF 5.0, abbastanza semplice o almeno pensavo. Una delle cose nel mio vecchio progetto è che ero in grado di modificare la stringa di connessione al database in fase di esecuzione in EF 4.1:EF 5 Modifica stringa di connessione in Runtime
using (var myContext = new MyEntities(ConnectionString))
{
}
Easy-peasy ma in EF 5.0 che dovete fare in modo diverso:
string connectionString = "data source=LocalHost;initial catalog=MyDatabase;user id=MyUserName;password=MyPassword;multipleactiveresultsets=True;App=EntityFramework";
using (var myContext = new MyEntities())
{
myContext.Database.Connection.ConnectionString = connectionString;
}
Ora, questo mi ha richiesto una parte migliore di due ore per capire, quindi credo che la mia domanda è questo il modo corretto di cambiare la stringa di connessione in fase di esecuzione o no? Se è perché hanno fatto questo cambiamento?
Ho trovato questo Link ma non ha funzionato. Ho ricevuto l'errore come dettagliato nel primo commento della prima risposta di Ladislav Mrnka. Più tardi ho trovato questo Link che sembra funzionare bene.
UPDATE
ho riletto il first link ho postato e ho trovato un'altra soluzione, ho semplicemente creato una classe parziale:
public partial class MyEntities : DbContext
{
public MyEntities(string connectionString) : base(connectionString)
{
Database.Connection.ConnectionString = connectionString;
}
}
Dovresti scrivere la tua modifica come risposta e accettarla ... – SRKX
Nella tua risposta, la riga 'Database.Connection .ConnectionString = connectionString; 'è ridondante, poiché tale operazione è già eseguita dal costruttore base. –