2013-05-14 20 views
8

sto costruendo una soluzione con i seguenti progetti:
Pubblicare Entity Framework-Codice-prime migrazioni con nessun contesto nel progetto di avvio

  • Main.Data - progetto Libreria di classi
  • Main.API - Asp.NET MVC WebAPI - riferimenti Main.Data
  • Main - Asp.NET MVC 4 applicazioni web - riferimenti Main.API ​​

ho un 012.343 Classesituata all'interno del progetto Main.Data. Ho anche inviato con successo il comando console enable-migrations sul progetto Main.Data e sto utilizzando correttamente LocalDB come server SQL per i miei dati e per le migrazioni .

Il problema si verifica quando si tenta di pubblicare il progetto Main nel sito Web di Windows Azure.

Il profilo di pubblicazione che viene creato automaticamente utilizzando Import from a Windows Azure web site non sembra riconoscere che sto utilizzando la soluzione Primo codice di Entity Framework e quindi non posso abilitare Execute Code First Migrations come vorrei.
Invece, posso solo abilitare gli script Update database.

Utilizzo Visual Studio 2012 con Entity Framework 5.0.0 (dall'inizio del progetto).

solo per verificare, ho cercato di aggiungere un MyContext classe temporanea all'interno della Main progetto e di enable-migrations sul progetto Main, e dopo che il mio profilo di pubblicazione automaticamente rilevata Entity Framework Codice-First. (? O è)
Cioè, di partecipazione al corso, non una soluzione

Ecco alcune discussioni importanti:

  • This è il tutorial di apprendimento di base.
  • This spiega le opzioni di implementazione, ma non la risoluzione dei problemi.
  • This in realtà dà alcune idee da provare, ma tutto sembra innaturale.

Sto cercando una soluzione stabile e pulita. Devo mettere la mia classe Context all'interno del Main Project?

Grazie in anticipo

+0

Ti ricordi di aggiungere l'app/web.config al tuo progetto principale? Quando abiliti le migrazioni, aggiunge i file di configurazione al progetto Main.Data. Questi non vengono aggiunti quando si fa riferimento al progetto. Ho i miei contesti in progetti separati, ma i file di configurazione dovrebbero essere nel progetto in cui li utilizzo? –

+0

Sì, web.config si trova nel progetto principale e i file di configurazione sono in dati principali ... È stato possibile distribuire il progetto principale in Azure? – Liel

+0

La mia configurazione non è identica al 100%. Faccio tutte le cose della migrazione in studio visivo e locale. Quando distribuisco, i miei database sono aggiornati e le cose funzionano. havent provato con le migrazioni automatiche –

risposta

9

ora posso permettere Execute Code First Migrations quando creo un profilo di pubblicazione.
Ecco quello che ho fatto per raggiungerlo:

  1. All'interno Main/Web.config ho cambiato il nome della stringa di connessione al FQN della classe del contesto: Main.Data.MyContext.
  2. Aggiungere un riferimento dal progetto Main al progetto Main.Data (che non era necessario fino ad ora).

Questo fa il lavoro per me.
Se qualcuno ha una risposta migliore o più istruttiva, sarei felice di sentirlo.

+1

Main.Data.MyContext sarebbe il [Nome completo] (http://msdn.microsoft.com/en-us/library/dfb3cx8s%28v=vs.71%29.aspx), che è diverso dal "percorso completo" (che sarebbe qualcosa di simile al percorso del file system.) –

+0

Per utilizzare i miei profili di pubblicazione esistenti (.pubxml) ho dovuto entrare in essi e aggiornare manualmente il ''. Probabilmente anche la loro ricreazione avrebbe funzionato. Grazie! –

+0

Questo non ha funzionato per me :(. @Liel hai fatto qualcos'altro per farlo funzionare? – Zero3

Problemi correlati