2013-11-21 15 views
5

Mi capita spesso di incontrare la seguente situazione con codice Entity Framework prime migrazioni. Aggiungo alcune migrazioni e aggiorno il database con successo. Quando in seguito desidero aggiungere una nuova migrazione, il comando Add-Migration si lamenta del fatto che "Impossibile generare una migrazione esplicita perché le seguenti migrazioni esplicite sono in sospeso ...". Ad esempio, sembra dimenticare che le sue migrazioni erano già applicate in precedenza e quindi non dovrebbero essere considerate come pendenti. Se provo a risolvere questo problema, Update-Database indica "Impossibile aggiornare il database in modo che corrisponda al modello corrente perché ci sono [nuove] modifiche in sospeso ...". Non capisco perché le migrazioni EF non siano più sincronizzate poiché sto apportando solo modifiche al modello.EF Aggiungere alla migrazione indica "Nessun sospeso migrazioni esplicite" ma Update-Database lamenta "..ci sono modifiche in sospeso"

+0

Non sono sicuro quanto vi aiuterà, ma questa domanda/risposta: http://stackoverflow.com/questions/16952413/stuck-in-ef-migration-limbo – Steve

+1

Grazie Steve. Sembra che questo problema sia causato da un bug di VS 2013 in cui VS 2013 non aggiorna correttamente un riferimento a DLL (al contrario di un project-ref) quando il riferimento viene eliminato e quindi aggiunto di nuovo dalla cartella bin del progetto di contesto del database (anche se viene chiamato Clean Solution in mezzo). Il cestino del progetto di riferimento non mostra la DLL del database di database aggiornata anche dopo la compilazione successiva. Quindi, il modello della DLL non è aggiornato con il database che è già stato aggiornato dal progetto contesto dati. – CalvinDale

+3

Dovresti postarlo come risposta alla tua stessa domanda, così quando gli altri lo cercano potrebbero trovare la tua spiegazione. – Steve

risposta

9

Per me il problema è che abbiamo avuto ribattezzato lo spazio dei nomi della migrazione 2014123456_Initial.cs.
Ma VS non ha rigenerato lo spazio dei nomi nel suo associato 2014123456_Initial.Designer.cs.

Una volta che i Designer.cs è stato cambiato di utilizzare lo stesso spazio dei nomi, tutto è iniziato a lavorare di nuovo.

+3

grazie mille! Passo ore a cercare un problema! Lo stesso qui: namespace in .Designer.cs! –

Problemi correlati