Passt Code First mit Migrationen oder SQL Server-Datentools besser?

11

Ich habe eine Spezifikation erhalten, um eine neue MVC4-Website zu erstellen. Es wird zunächst kein zu großes Projekt sein, aber ich vermute, dass es wachsen wird, wenn das Unternehmen neue Ideen dafür erhält.

Verwenden von .NET 4.5 ASP.NET MVC4 und EF Ich muss zwischen Code-First bei Migrationen oder SQL Server Data Tools (SSDT) ​​für die Verarbeitung meiner Datenbank wählen.

Mit dem SSDT kann ich meine Datenbank in einem Projekt als Teil meiner Lösung steuern und die Änderungen von der Entwicklung bis zur Produktion und darüber hinaus mithilfe von Dacpac-Dateien verarbeiten. Meine Erfahrung mit Code-First von MVC3 bestand darin, es aufgrund der begrenzten Datenbankoptionen nicht über die Entwicklung hinaus zu verwenden. Es würde immer dazu führen, dass die Datenbank beim Modellwechsel gelöscht oder die Datenbankänderungen manuell behandelt werden. Ich bin jedoch der Meinung, dass dies bei MVC4-Migrationen nicht mehr der Fall ist, und ich kann jetzt Updates an die Datenbank senden.

Meine Frage ist also, welches am effizientesten zu verwenden ist, da Zeit und Aufwand bei der Entwicklung gespart werden, aber auch skalierbar und in der Lage sind, Produktionsänderungen zu bewältigen. Ich mochte Code-First und die Möglichkeit, meine Datenbank aus Modellen zu generieren. Macht die Einführung von Migrationen sie jetzt in der Produktion rentabel?

James
quelle

Antworten:

2

Meine persönliche Meinung ist, dass Codefirst ein großartiges Tool und großartig für die Entwicklung ist. Die Schritte der ersten Datenbankentwicklung sollten das Erstellen von Skripten für externe Tools oder von Hand sein, wenn Sie bereits über eine Produktionsdatenbank verfügen.

Der Code wird zuerst in die Entwicklung des Datenbankversionskontrollsystems einbezogen und bietet eine verteilte Datenbankentwicklung.

Ausgangspunkt ist eine gute Serie:

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

Gábor Plesz
quelle
Haben Sie versucht, die ssdt, in der Lage, die 2 zu vergleichen?
James
1
Ja, ich benutze es regelmäßig in früheren Versionen von SSDT. Ich habe mir die neuesten Links angesehen: 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 /… . Ich habe den Datenbank-Unit-Test nicht ausprobiert, aber ich denke, der Schlüssel soll nebeneinander der Codefirst und der SSDT verwendet werden.
Gábor Plesz
Ich werde diese Blogs bald lesen. Ich hätte nicht gedacht, dass Code-First und SSDT nebeneinander funktionieren würden. Es sei denn, Sie möchten Code-first während der Entwicklung verwenden und für die Produktion zu SSDT wechseln? Ich werde deine Links lesen!
James
Ich mache die erste Methode des Datenbankentwicklungscodes. Die Codefirst-Migration löst die Schritte zum Installieren der Datenbank (Erstellen einer neuen Tabelle, einer neuen Spalte in einer vorhandenen Tabelle usw.). Wenn Sie beispielsweise Datenbank- Unit-Tests erstellen möchten , können Sie auch SSDT verwenden. Wenn wir zwei Strukturen vergleichen wollen , können wir auch die SSDT verwenden. Zumindest benutze ich es also. Entwicklung und Bereitstellung von Codefirst sehr gut.
Gábor Plesz
Soweit ich weiß, ist SSDT perfekt für Db First, und nach allem, was Sie gesagt und gepostet haben, scheinen die Migrationsoptionen, die MVC4 hinzugefügt wurden, Code-First tatsächlich über die ursprüngliche Entwicklung hinaus nutzbar zu machen!
James