Sto migrando un'applicazione Web esistente (utilizzando Entity Framework 5) a un ruolo Web di Azure.Entity Framework DbContext nel ruolo Web di Azure
La stringa di connessione del database viene spostata dallo web.config
ai file ServiceConfiguration.*.cscfg
.
Il problema è che nel file auto-generataModel.Context.cs
, la mia classe entità è definita in questo modo:
public partial class MyEntities : DbContext
{
public MyEntities()
: base("name=MyEntities")
{ }
// DbSets, etc
}
Questo sarà sempre cercare MyEntities
nel web.config
. Come posso eseguire l'override di questo costruttore in modo che possa passare la stringa di connessione dal file ServiceConfiguration.*.cscfg
?
mi potrebbe derivare da questa classe, in questo modo:
public class MyCloudEntities : MyEntities
{
public MyCloudEntities()
: base(CloudConfigurationManager.GetSetting("MyEntities"))
{ }
}
Ma poi devo cambiare ogni istanza di MyEntities
nella base di codice, e non ci vorrà impedire agli sviluppatori di utilizzare MyEntities
in futuro.
Perché si desidera memorizzare la connessione nel file di configurazione azzurro? Hai mai avuto bisogno di cambiare il connectiontring in fase di runtime? – Fore
No, ma la stringa di connessione è diversa per ambiente. – davenewza