Code First con Migrations o SQL Server Data Tools si adatta meglio?


11

Mi è stata data una specifica per creare un nuovo sito Web MVC4, all'inizio non sarà un progetto troppo grande, ma sospetto che crescerà man mano che l'azienda otterrà nuove idee.

Utilizzando .NET 4.5 ASP.NET MVC4 ed EF devo scegliere tra code-first con migrazioni o Sql Server Data Tools (SSDT) ​​per gestire il mio database.

Con SSDT posso controllare il mio database in un progetto come parte della mia soluzione e gestire le modifiche fino al dev dalla produzione alla produzione e oltre usando i file dacpac. La mia esperienza di code-first da MVC3 non è stata quella di usarlo oltre lo sviluppo a causa delle limitate opzioni del database. Si finirebbe sempre con la caduta del Db al cambio del modello o la gestione manuale dei cambiamenti del Db. Tuttavia, sono portato a credere con MVC4 Migrations che non è più il caso e ora posso inviare aggiornamenti al Db.

Quindi la mia domanda è quale sia la più efficiente da utilizzare in base al risparmio di tempo / impegno nello sviluppo ma anche scalabile e in grado di gestire i cambiamenti di produzione. Mi è piaciuto il codice in primo luogo e la capacità di generare il mio database dai modelli, l'introduzione delle migrazioni ora lo rende praticabile nella produzione?

Risposte:


2

La mia opinione personale è che il codice sia il primo strumento eccezionale e ottimo per lo sviluppo. I passaggi dello sviluppo del database devono essere lo scripting di strumenti esterni o manualmente, se si dispone già di un database di produzione.

Il codice da inserire per primo nello sviluppo del sistema di controllo della versione del database e fornisce uno sviluppo di database distribuito.

Punto di partenza, è una buona serie:

http://coding.abel.nu/2012/02/using-entity-framework-to-create-a-database/


Hai provato l'sdt, in grado di confrontare il 2?
James,

1
Sì, lo uso regolarmente nella versione precedente di SSDT. Ho guardato il più recente a questi link: msdn.microsoft.com/en-us/jj650015 , sqlblog.com/blogs/jamie_thomson/archive/2013/03/21/... , develop.com/sqlservertwelvedatatools , blogs.msdn.com/ b / ssdt / archive / 2012/12/13 /… . Non ho provato il test dell'unità di database, ma penso che la chiave debba essere usata l'una accanto all'altra il codefirst e l'SSDT.
Gábor Plesz,

Leggerò presto quei blog. Non pensavo che il code-first e SSDT avrebbero funzionato fianco a fianco. A meno che tu non intenda usare il codice prima durante lo sviluppo e passare a SSDT per la produzione? Leggerò i tuoi link!
James,

Sto facendo il primo metodo di codice di sviluppo del database. La migrazione di codefirst risolve i passaggi per l'installazione del database (creazione di una nuova tabella, una nuova colonna in una tabella esistente, ecc.). Ad esempio, se si desidera creare test di unità di database , è anche possibile utilizzare SSDT. Se vogliamo confrontare due strutture , possiamo anche usare SSDT. Almeno, quindi lo uso. Sviluppo e implementazione di codefirst molto bene.
Gábor Plesz,

Da quello che sembro SSDT è perfetto per Db First e da tutto ciò che hai detto e pubblicato sembra che le opzioni di migrazione aggiunte a MVC4 rendano effettivamente il codice utilizzabile al di là dello sviluppo iniziale!
James,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.