7

Ho diversi database che attualmente utilizzano FluentMigrator e sono curioso di sapere come confrontare le Migrazioni di Entity Framework.Cosa può fare Entity Framework Migrations che FluentMigrator non può?

Le migrazioni EF possono eseguire l'analisi dei dati nelle migrazioni e eseguire selettivamente script di migrazione basati su ambienti come FluentMigrator con tag e profili?

Sto già utilizzando EF Database First come ORM alla mia applicazione, e penso di aver letto da qualche parte che EF Migrations è supportato anche per EF non Code First ora, ma il mio team ha pensato al refactoring di un codice Primo approccio comunque a causa di alcune limitazioni con l'approccio Database First. Le migrazioni EF, quindi, hanno più senso da usare piuttosto che avere un altro framework di migrazione di terze parti quando si utilizza un approccio basato sul codice?

+0

Bene, in primo luogo, FM non può generare automaticamente migrazioni. Vale a dire, non esegue la scansione del database, determina cosa è cambiato e crea lo script in base al diff. EFM lo fa. –

+0

Ora, tre anni dopo, sono curioso di vedere se hai tentato l'interruttore e quale è stata la tua esperienza. Sembra che la maggior parte di coloro che usano le migrazioni usano l'una o l'altra e non hanno realmente un'opinione sull'altra. –

risposta

1

Non ho esperienza con FluentMigrator ma dopo una breve panoramica della documentazione, sembra che sia necessario creare manualmente le migrazioni?

EF richiederà una migrazione ogni volta che il modello cambia e l'app viene eseguita. Questo lo rende facile, ma allo stesso tempo fastidioso. Dopo aver attivato Migrazioni, qualsiasi modifica al modello che comporti una modifica del database richiederà una migrazione. Puoi modificare la migrazione, e viene generato automaticamente. Basta guardare la versione "down" ... Ho avuto problemi.

Il codice prima è piuttosto semplice. Gestisce anche modelli di oggetti più complessi come le sottoclassi. È anche possibile specificare come vengono generate le tabelle (tabella per ogni tipo, tabella di base e una tabella per ogni tipo, o tabella singola e una chiave di testo).

Tutto ciò per dire che se si intende generare sempre codice C# per aggiornare il database, sceglierei le migrazioni integrate di EF. Fanno la maggior parte del lavoro per te.