tutorial mvc framework first español create code entity-framework entity-framework-4.1 connection-string entity-framework-5

entity framework - mvc - EF 5 Cambio de cadena de conexión en tiempo de ejecución



entity framework connection string sql server (2)

Eche un vistazo a otro enlace Configuración Entity Framework para Dynamic Connection String . Dice: "puedes hacerlo creando otra clase parcial ya que la clase Entidades se declara parcial"

Ok, quiero recrear un proyecto que creé usando EF 4.1 a EF 5.0, lo suficientemente simple o al menos eso pensé. Una de las cosas en mi antiguo proyecto es que pude cambiar la cadena de conexión de la base de datos en tiempo de ejecución en EF 4.1:

using (var myContext = new MyEntities(ConnectionString)) { }

Easy-peasy pero en EF 5.0 tienes que hacer esto de manera diferente:

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; }

Ahora, esto me tomó una buena parte de dos horas en descifrar, así que supongo que mi pregunta es ¿esta es la forma correcta de cambiar la cadena de conexión en tiempo de ejecución o no? Si es por eso que hicieron este cambio?

Encontré este Link pero no funcionó. Recibí el error como se detalla en el primer comentario de la primera respuesta de Ladislav Mrnka. Más tarde encontré este Link que parece funcionar bien.

ACTUALIZAR

Releí el Link que publiqué y encontré otra solución, simplemente creé una clase parcial:

public partial class MyEntities : DbContext { public MyEntities(string connectionString) : base(connectionString) { Database.Connection.ConnectionString = connectionString; } }


Use la sobrecarga del constructor de contexto que toma la cadena de conexión como un parámetro.