Comment puis-je transmettre une chaîne de connexion au DbContext code-first du framework d'entité? Ma génération de base de données fonctionne correctement lorsque DbContext et la chaîne de connexion dans web.config se trouvent dans le même projet et sont nommés de la même manière. Mais maintenant, je dois déplacer le DbContext vers un autre projet, donc je teste en lui passant une chaîne de connexion comme suit:
Modèle et contexte
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; }
}
action
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 je place un point d'arrêt dans l'action et analyse le db
, la chaîne de connexion est là, mais elle ne crée ni ne trouve la base de données ou quoi que ce soit.
Une erreur liée au réseau ou spécifique à une instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (fournisseur: fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server)