6

Ho usato EF 5 Code First, con successo, nella mia app. Ho circa 40 tavoli. Tuttavia, ho riscontrato un problema che può sembrare che le Migrazioni vengano gestite correttamente. Quindi, quello che mi piacerebbe fare è in qualche modo dire a EF di trattare lo schema corrente del database come un nuovo punto di partenza, e iniziare a gestirlo da questo punto. In questo modo, posso modificare manualmente lo schema necessario, quindi dire a EF di ricominciare essenzialmente da questo punto.Entity Framework 5 Code First - Come "ricominciare"?

C'è un modo per farlo? Presumo che dovrò cancellare la tabella __MigrationHistory o rimuovere il suo contenuto. Ma non sono sicuro di come sia meglio procedere con questo.

risposta

8

Si dovrebbe essere in grado di effettuare le seguenti operazioni:

  • Modifica il database manualmente per riflettere i cambiamenti nel modello che sogliono essere gestiti da una migrazione. Tutto dovrebbe funzionare ora, ma il database e il sistema di migrazione non sono sincronizzati.

  • Corsa Add-Migration ManuallyUpdatedDatabase -IgnoreChanges. Questo crea una migrazione completamente vuota, quindi non apporta modifiche al database, ma si accerterà che il sistema sia a conoscenza delle modifiche manuali che sono state apportate. In questo modo le modifiche manuali non saranno incluse nella prossima migrazione che creerai.

  • Eseguire Update-Database per applicare la migrazione vuota.

Da qui in poi tutto dovrebbe funzionare come al solito. Hai appena un "link mancante" nelle tue migrazioni perché hai gestito alcune modifiche manualmente.