web-dev-qa-db-fra.com

Code Première chaîne de connexion d'infrastructure d'entité

J'ai 3 projets de classe dans mes solutions. 1. Projet MVC4 2. Domaine 3. Des tests

Dans le projet MVC4, j'ai ajouté un fichier web.config avec la chaîne de connexion comme

<add name="EfDbContext"  connectionString="Data Source=.;Initial Catalog=SportsStore;Integrated Security=true;" providerName="System.Data.SqlClient"/>

J'ai une classe nommée EfDbContext dans le projet de domaine qui hérite de DbContext.

Lorsque je consulte le site Web dans un navigateur, le serveur non trouvé est erroné.

J'ai débogué la classe EfDbContext et constaté que Database.Connection.ConnectionString Est défini sur\SqlExpress avec la base de données EfDbContext.

Pourquoi donc?

16
Suneel Dixit

Enfin, j'ai réalisé que j'avais ajouté l'entrée de connexion dans le fichier web.config créé par VS dans le dossier Views.

Ma faute.

1
Suneel Dixit

Vous devez avoir votre chaîne de connexion en tant qu'espace de nom complet dans votre contexte lorsque votre classe de contexte est dans un projet différent.

Par exemple:

 <add name = "YourClassProject.EfDbContext" connectionString = "Source de données = .; Catalogue initial = SportsStore; Integrated Security = true;" providerName = "System.Data.SqlClient" />
17

Vous devez créer votre DbContext avec votre nom de chaîne de connexion transmis au constructeur

public class UnicornsContext : DbContext
{
    public UnicornsContext()
        : base("EfDbContext")
    {
    }
}

http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-2-connections-and-models.aspx

11
Felix