2013-03-28 2 views
10

Ho iniziato a utilizzare EF utilizzando il database per primo e generando il mio diagramma dal database.Aggiorna lo schema del database senza perdere dati?

Ora ho cambiato e apportato molte modifiche al mio diagramma e vorrei aggiornare lo schema del mio database senza perdita di dati. Tuttavia, generare il database dal diagramma sembra eliminare tutte le tabelle e ricrearle.

Ho trovato "migrazioni di dati" per il primo codice. C'è qualcosa di simile per il modello prima o in qualsiasi modo posso mantenere i dati?

Sto usando CONTRO 2012 con EF5

+1

Distribuire a un database di test, poi fare una differenza tra il database di test e di produzione utilizzando uno strumento di vostra scelta che produce gli script di differenza: http : //stackoverflow.com/questions/5861991/deploying-database-changes-with-ef-4-1 – AaronLS

+0

Tranne "generare il database dal modello" trasforma tutte le tue DefiningQueries (viste) nelle tabelle e trascrive il file edmx nel processo . – Dave

+0

In tal caso, utilizzo la funzionalità di confronto dello schema di Visual Studio. Funziona abbastanza bene. Le colonne rinominate sono un problema, ma a parte questo il lavoro viene svolto. –

risposta

0

Non dimenticare di cercare in SO sito,

http://visualstudiogallery.msdn.microsoft.com/df3541c3-d833-4b65-b942-989e7ec74c87/

Dopo l'installazione, quando si sceglie "Genera database da modello ... " aprirà una nuova procedura guidata e potrai scegliere" Genera T-SQL di migrazione "

Altro il modo è utilizzare t4 personalizzato per generare DbMigrationsConfiguration e DbContext dal modello e non è necessario eseguire Enable-Migration affatto. Basta eseguire Console Add-migrazione e aggiornamento Database nel Package Manager

http://blog.amusedia.com/2012/08/entity-framework-migration-with-model.html

+1

Ho cercato SO, ma come ho elencato nella mia domanda sto usando VS2012 e EF5, nessuno dei quali è supportato da quello strumento, sfortunatamente. – Kyle

+0

Nessun problema, i modelli T4 sono il modo migliore –

+0

Potresti forse elaborare come utilizzerei i modelli T4 per realizzare questo ..? – Kyle