2013-05-14 2 views
8

I mit folgenden Projekten eine Lösung am Bau:
Veröffentlichen Entity-Framework-Code-First-Migrationen ohne Kontext in dem Startprojekt

  • Main.Data - -Klassenbibliotheksprojekt
  • Main.API - Asp.NET MVC WebAPI - Referenzen Main.Data
  • Main - Asp.NET MVC 4 Web-Anwendung - Referenzen
  • Main.API ​​

ich habe einen 012.Klasse befindet sich innerhalb Main.Data Projekt. Ich habe auch erfolgreich enable-migrations Konsolenbefehl auf Main.Data Projekt, und ich bin erfolgreich mit LocalDB als SQL-Server für meine Daten und für upgrade-database Migrationen.

Das Problem beginnt, wenn ich versuche, Main Projekt auf Windows Azure-Website zu veröffentlichen.

Das Publish-Profil, das automatisch mit Import from a Windows Azure web site erstellt wird, scheint nicht zu erkennen, dass ich die Entity Framework Code First-Lösung verwende, und daher kann ich Execute Code First Migrations nicht so aktivieren, wie ich möchte.
Stattdessen kann ich nur Update database Skripte aktivieren.

Ich verwende Visual Studio 2012 mit Entity Framework 5.0.0 (seit Beginn des Projekts).

Nur um zu überprüfen, habe ich versucht, eine temporäre MyContext Klasse innerhalb des Main Projekt hinzuzufügen und zu enable-migrations auf dem Main Projekt, und danach mein Profil veröffentlichen automatisch Entity Framework-Code-First erkannt. (? Oder ist es)
Das heißt, der-natürlich keine Lösung

Hier sind einige relevante Themen:

  • This ist die Basis Lernen Tutorial.
  • This erläutert Bereitstellungsoptionen, aber keine Fehlerbehebung.
  • This gibt eigentlich ein paar Ideen zu versuchen, aber alles scheint unnatürlich.

Ich bin auf der Suche nach einer sauberen stabilen Lösung. Muss ich meine Context-Klasse in das Hauptprojekt einfügen?

Vielen Dank im Voraus

+0

Erinnern Sie sich, die App/web.config zu Ihrem Hauptprojekt hinzuzufügen? Wenn Sie Migrationen aktivieren, fügen Sie die Konfigurationsdateien dem Main.Data-Projekt hinzu. Diese werden nicht hinzugefügt, wenn Sie auf das Projekt verweisen. Ich habe meine Kontexte in separaten Projekten, aber die Konfigurationsdateien sollten in dem Projekt sein, in dem ich sie verwende? –

+0

Ja, web.config befindet sich im Hauptprojekt und die Konfigurationsdateien befinden sich in Main.Data ... Haben Sie das Hauptprojekt für Azure bereitgestellt? – Liel

+0

Mein Setup ist nicht 100% identisch. Ich mache alle Migrationsarbeiten im Visual Studio und lokal. Bei der Bereitstellung sind meine Datenbanken auf dem neuesten Stand und die Dinge funktionieren einfach. nicht versucht mit automatischen Migrationen –

Antwort

9

kann ich Execute Code First Migrations jetzt aktivieren, wenn ich ein Profil veröffentlichen erstellen.
Hier ist, was ich es erreichen tat:

  1. Innen Main/Web.config änderte ich den Namen der Verbindungszeichenfolge an den FQN der Kontextklasse: Main.Data.MyContext.
  2. Fügen Sie eine Referenz von Main Projekt zu Main.Data Projekt hinzu (das bisher nicht benötigt wurde).

Das macht den Job für mich.
Wenn jemand eine bessere oder mehr erzieherische Antwort bekommen würde, würde ich mich freuen, es zu hören.

+1

Main.Data.MyContext wäre der [Fully Qualified Name] (http://msdn.microsoft.com/en-us/library/dfb3cx8s%28v=vs.71%29.aspx), der unterscheidet sich von dem "vollständigen Pfad" (der ungefähr dem Dateisystempfad entsprechen würde). –

+0

Um meine vorhandenen Veröffentlichungsprofile (.pubxml) zu verwenden, musste ich in sie gehen und den ''. Wahrscheinlich hätte es auch funktioniert, sie neu zu erstellen. Vielen Dank! –

+0

Das hat bei mir nicht funktioniert :(@Liel hast du noch etwas getan, damit es funktioniert? – Zero3

Verwandte Themen