36

Sto utilizzando le migrazioni di Entity Framework e Entity Framework per implementare la soluzione utilizzando le migrazioni code-first e automatiche.Le migrazioni di Entity Framework hanno interrotto il rilevamento degli aggiornamenti POCO

Ha funzionato benissimo ma improvvisamente ha smesso di rilevare gli aggiornamenti che ho apportato al mio POCO. Ora, quando aggiungo una nuova proprietà (proprietà molto semplici come l'età o e-mail) ed eseguire il Update-Database, non succede nulla, e mi dà questo:

Specificare il flag '-Verbose' per visualizzare comandi SQL in esecuzione durante il migrazione.
Trovato 0 migrazioni esplicite in sospeso: [].
Aggiunta di dati seme (se il metodo seme è sovrascritto nella classe Impostazioni di migrazione).

e niente viene aggiornato!

Qualcuno ha idea del perché questo sta accadendo?

+1

Il flag AutomaticMigrationsEnabled è ancora impostato? – Betty

+0

Rileva le modifiche se si esegue Add-Migration? – Betty

+0

La migrazione automatica è impostata su True, non ho controllato la migrazione degli add, ma ora ho dovuto disinstallare la migrazione di entity-framework e installarla di nuovo per risolverlo, e funziona ora così ora non posso dirlo, ma se è è accaduto di nuovo vorrei controllare add-Migration – Stacker

risposta

2

Questo può essere in due motivi:

  1. C'è qualche altro DbContext nel codice, è per questo che le migrazioni automatiche non potrebbero decidere, quale contesto da utilizzare.
  2. C'è qualche nuova modifica, che fa un ciclo di confronto tra schema e modello di codice, quindi EF semplicemente non ha potuto trovare la differenza.

In generale, le migrazioni automatiche sono semplici e veloci da implementare, ma non è sicuro utilizzarle. A un certo punto, tali migrazioni potrebbero fallire.

Diversi anni fa, ho sviluppato un piccolo ORM basato su Linq2SQL, AcroDB Library, e utilizzava l'automazione di SubSonic. Quasi quanto possono fare le migrazioni EF ora. Era perfetto per piccoli progetti e una piccola quantità di dati da elaborare o modificare, ma quando il progetto si è trasformato in più di 15 tavoli, è diventato un incubo. Ecco perché MS ha annunciato lo Code-driven migrations ultimamente. Sono più sicuri e migliori per il progetto. Inoltre, puoi dare un'occhiata a Migrator.Net (è un po 'meglio di EF, a quest'ora).

Problemi correlati