¿Cómo paso una cadena de conexión al código DbContext primero del marco de la entidad? La generación de mi base de datos funciona correctamente cuando tanto DbContext como la cadena de conexión en web.config están en el mismo proyecto y tienen el mismo nombre. Pero ahora necesito mover el DbContext a otro proyecto, así que estoy probando pasarle una cadena de conexión de la siguiente manera:
Modelo y contexto
public class Dinner
{
public int DinnerId { get; set; }
public string Title { get; set; }
}
public class NerdDinners : DbContext
{
public NerdDinners(string connString)
: base(connString)
{
}
public DbSet<Dinner> Dinners { get; set; }
}
Acción
public ActionResult Index()
{
var db = new NerdDinners(ConfigurationManager.ConnectionStrings["NerdDinnerDb"].ConnectionString);
var dinners = (from d in db.Dinners
select d).ToList();
return View(dinners);
}
Web.Config
<connectionStrings>
<add name="NerdDinnerDb" connectionString="Data Source=|DataDirectory|NerdDinners.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Si establezco un punto de interrupción en la acción y analizo db
, la cadena de conexión está allí, pero no crea ni encuentra la base de datos ni nada.
Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor: proveedor de canalizaciones con nombre, error: 40: no se pudo abrir una conexión a SQL Server)