wake-up-neo.com

Erstes Modell mit DbContext, neue Datenbank kann nicht initialisiert werden

Ich gebe auf. Ich fand dies: http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx Und dachte, Das ist cool. Deshalb habe ich mein Modell schnell überarbeitet, um das Beste aus zwei Welten auszunutzen.

Aber jetzt kann mein Modell keine neue Datenbank erstellen (oder Tabls zu einer vorhandenen hinzufügen). Ich erhalte diesen Fehler:

Code, der mit den T4-Vorlagen für die Entwicklung von Database First und Model First generiert wurde, funktioniert möglicherweise nicht ordnungsgemäß, wenn er im Code First-Modus verwendet wird. Um Database First oder Model First weiterhin zu verwenden, stellen Sie sicher, dass die Entity Framework-Verbindungszeichenfolge in der Konfigurationsdatei der ausgeführten Anwendung angegeben ist. Um diese Klassen zu verwenden, die aus Database First oder Model First mit Code First generiert wurden, fügen Sie mithilfe von Attributen oder der DbModelBuilder-API zusätzliche Konfigurationen hinzu, und entfernen Sie dann den Code, der diese Ausnahme auslöst.

Beim:

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

Und das ist meine Verbindungszeichenfolge:

    <add name="ForumContextContainer"
 providerName="System.Data.SqlClient"
 connectionString="Data Source=.\SQLExpress; Initial Catalog=iForum; Integrated Security=True"/>

Hinweis. Ich habe Initial Catalog später hinzugefügt, um zu versuchen, ob es funktioniert, aber es war genau das gleiche.

23
Łukasz Baran

Dies ist eine falsche Verbindungszeichenfolge. Wenn Sie EDMX (model-first/database-first) verwenden, müssen Sie Entitätsverbindungszeichenfolge mit Verweisen auf SDL-, MSL- und CSDL-Metadatendateien verwenden. Beachten Sie auch, dass Sie Ihre Datenbank in der Entwurfszeit erstellen müssen, wenn Sie ein Modell aus EDMX erstellen. = Sie müssen ein SQL-Skript generieren und ausführen, um die Datenbank zu erstellen.

32
Ladislav Mrnka

Ich denke, dieser Fehler tritt normalerweise auf, wenn jemand die EDMX/db zuerst zu einer Klassenbibliothek in der Lösung hinzufügt. Wenn Sie dies tun, stellen Sie sicher, dass die in der Datei App.config im Klassenbibliotheksprojekt hinzugefügte Verbindungszeichenfolge in der Datei web.config oder in der Konfigurationsdatei des exe-Projekts verfügbar ist (kopieren Sie sie also einfach und fügen Sie sie dort ein).

2
gavri
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=&quot;
data source=SAI-PC;
initial catalog=OrderDB;
user id=sa;
password=Pass$123;
MultipleActiveResultSets=True;
App=EntityFramework&quot;" 
providerName="System.Data.EntityClient" />

EFmodel is my .edmx file name.

OrderDB is database name.
0
Saineshwar