Modèle D'abord avec DbContext, échoue à initialiser la nouvelle base de données
J'abandonne. J'ai trouvé ce: http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx Et de la pensée, c'est cool. J'ai donc rapidement repensé mon modèle pour profiter du meilleur des deux mondes.
Mais maintenant mon modèle échoue à créer une nouvelle base de données (ou à ajouter des tabls à une base de données existante). Je reçois cette erreur:
Le Code généré à l'aide des modèles T4 pour le développement de la base de données en premier et du modèle en premier peut ne pas fonctionner correctement s'il est utilisé dans le Code Le premier mode. Pour continuer à utiliser Database First ou Model First, assurez-vous que la chaîne de connexion Entity Framework est spécifiée dans le fichier de configuration de l'application en cours d'exécution. Pour utiliser ces classes, qui ont été générées à partir de la base de données en Premier ou du modèle en premier, avec le Code en premier, ajoutez toute configuration supplémentaire à l'aide d'attributs ou de L'API DbModelBuilder, puis supprimez le code qui lève cette exception.
À:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
Et c'est ma chaîne de connexion:
<add name="ForumContextContainer"
providerName="System.Data.SqlClient"
connectionString="Data Source=.SQLExpress; Initial Catalog=iForum; Integrated Security=True"/>
Remarque. J'ai ajouté Catalogue Initial plus tard, pour essayer si ça va fonctionner, mais C'était exactement le même.
4 réponses
C'est une chaîne de connexion incorrecte. Une fois que vous utilisez model-first / database-first (EDMX), vous devez utiliser Entity connection string avec le référencement .lsed, .msl et .fichiers de métadonnées csdl. Sachez également que vous devez créer votre base de données au moment de la conception lorsque vous créez un modèle à partir D'EDMX = vous devez générer un script SQL et l'Exécuter pour créer la base de données.
Je suppose que cette erreur apparaît généralement lorsque quelqu'un ajoute L'EDMX/db en premier à une bibliothèque de classes dans la solution. Si vous le faites, assurez-vous que la chaîne de connexion ajoutée dans L'application.fichier de configuration dans le projet de bibliothèque de classes est disponible sur le web.config ou le fichier de configuration du projet exe (il suffit donc de le copier / coller là).
Add this connection string to web config and make changes:
<add name="Entities"
connectionString="
metadata=res://*/EFmodel.csdl|res://*/EFmodel.ssdl|res://*/EFmodel.msl;
provider=System.Data.SqlClient;provider
connection string="
data source=SAI-PC;
initial catalog=OrderDB;
user id=sa;
password=Pass$123;
MultipleActiveResultSets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
EFmodel is my .edmx file name.
OrderDB is database name.
Supprimer ou commenter ceci:
//protected override void OnModelCreating(DbModelBuilder modelBuilder)
//{
// throw new UnintentionalCodeFirstException();
//}
Et changez votre chaîne de connexion en une chaîne valide.