Entity-Framework-Code veröffentlichen - Erste Migrationen ohne Kontext im Startprojekt

8

Ich baue eine Lösung mit folgenden Projekten:

  • Main.Data - Klassenbibliotheksprojekt
  • Main.API - Asp.NET MVC WebApi - verweist auf Main.Data
  • Main - Asp.NET MVC 4-Webanwendung - Referenzen Main.API ​​

Ich habe eine MyContext : DbContext Klasse im Main.Data Projekt. Ich habe auch enable-migrations Konsolenbefehl auf Main.Data Projekt erfolgreich ausgegeben, und ich verwende erfolgreich LocalDB als SQL Server für meine Daten und für upgrade-database Migrationen.

Das Problem beginnt, wenn ich versuche, Main project auf der 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. Daher kann ich Execute Code First Migrations nicht so aktivieren, wie ich es möchte.
Stattdessen kann ich nur Update database scripts aktivieren.

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

Ich habe nur versucht, eine temporäre MyContext -Klasse innerhalb des Main -Projekts und enable-migrations im Main -Projekt hinzuzufügen, und danach hat mein Publish-Profil Entity Framework Code-First automatisch erkannt.
Das ist natürlich keine Lösung (oder?)

Hier sind einige relevante Themen:

  • Dies ist das grundlegende Lernprogramm.
  • erklärt Bereitstellungsoptionen, aber keine Fehlerbehebung.
  • Dies gibt Ihnen tatsächlich ein paar Ideen, die Sie ausprobieren sollten, aber alles scheint unnatürlich.

Ich suche eine saubere stabile Lösung. Muss ich meine Context-Klasse in das Hauptprojekt einfügen?

Vielen Dank im Voraus

    
Liel 14.05.2013, 12:31
quelle

1 Antwort

9

Ich kann jetzt Execute Code First Migrations aktivieren, wenn ich ein Veröffentlichungsprofil erstelle.
Hier ist, was ich getan habe, um es zu erreichen:

  1. Inside Main/Web.config Ich habe den Namen der Verbindungszeichenfolge in den FQN der Kontextklasse geändert: Main.Data.MyContext .
  2. Fügen Sie eine Referenz von Main project zu Main.Data Project hinzu (die bisher nicht benötigt wurde).

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

    
Liel 15.05.2013, 06:48
quelle