Entity Framework versucht eine Datenbank zu erstellen, aber es ist nicht was ich will

8

Ich habe eine kleine asp.net mvc4-Anwendung (funktioniert gut in meinem lokalen Rechner), die Entity Framework v4.1.0.0 mit ADO.net DbContext Generator verwendet. (SQL Server 2008 r2)

Ich füge neuere Versionen von dlls hinzu, die über das Kontextmenü "Add Deployable Dependencies ..." in Visual Studio 2010 benötigt werden.

Ich habe ein gemeinsames Hosting mit godaddy.com, ich habe die Dateien auf den Server hochgeladen und die Datenbank erstellt, jetzt kommt hier das Problem.Wenn ich versuche, meine Website zu durchsuchen, erhalte ich den folgenden Fehler:

Die Berechtigung CREATE DATABASE wurde in der Datenbank 'master' verweigert.

Ich habe das untersucht und festgestellt, dass dieser Fehler durch den EF-Code verursacht wurde, der zuerst versucht, eine Datenbank zu erstellen. Ich möchte aber nicht, dass der EF-Code die Datenbank neu erstellt, wie deaktiviere ich diese automatische Datenbankerstellung überhaupt? Ich habe nicht die Absicht, das Code-First-Feature überhaupt zu verwenden.

Bitte helfen Sie.

    
nthapa13 07.03.2012, 09:25
quelle

2 Antworten

23

Setzen Sie diesen Code in die Application_Start () -Methode von Global.asax oder Konstruktor in Ihrer DbContext-Klasse

%Vor%

Wenn Sie die Datenbank neu erstellen möchten, wenn POCO-Domänen geändert werden, verwenden Sie den folgenden Code anstelle von

%Vor%     
Ray 07.03.2012 09:33
quelle
2

Wenn Sie EF Migrations verwenden, legen Sie Folgendes fest:

%Vor%

Aber das beantwortet nicht die Frage zu EF Code First selbst. Wenn die Datenbank bereits existiert, versucht EF nicht, sie zu erstellen. Sie müssen also nur auf eine vorhandene Datenbank verweisen. Und um sicherzustellen, dass der Name der Verbindungszeichenfolge mit dem Namen des Datenbankkontexts übereinstimmt. Wenn dies nicht der Fall ist, müssen Sie es mit einigen Überschreibungen versehen:

%Vor%     
ferventcoder 07.03.2012 20:44
quelle