Является ли Code First with Migrations или SQL Server Data Tools более подходящим?

11

Мне дали спецификацию для создания нового веб-сайта MVC4, поначалу это будет не слишком большой проект, но я подозреваю, что он будет расти, поскольку бизнес получает новые идеи для него.

Используя .NET 4.5 ASP.NET MVC4 и EF, мне приходится выбирать между первым кодом с миграциями или Sql Server Data Tools (SSDT) ​​для обработки моей базы данных.

С помощью SSDT я могу управлять своей базой данных в проекте как часть моего решения и обрабатывать изменения на всем пути от разработчика до производства и далее, используя файлы dacpac. Мой опыт работы с кодом в MVC3 не состоял в том, чтобы использовать его за пределами разработки из-за ограниченных возможностей базы данных. Это всегда заканчивалось сбросом Db при изменении модели или обработкой изменений Db вручную. Тем не менее, я вынужден поверить в MVC4 Migrations, что это больше не так, и теперь я могу загружать обновления в Db.

Поэтому мой вопрос в том, какой из них наиболее эффективен для использования, поскольку он экономит время и усилия при разработке, но также масштабируем и способен обрабатывать производственные изменения. Мне понравился первый код и возможность генерировать мою базу данных из моделей, делает ли внедрение миграции ее жизнеспособной в производственной среде?

Джеймс
источник

Ответы:

2

Мое личное мнение, что Codefirst отличный инструмент и отлично подходит для разработки. Первыми шагами разработки базы данных должны быть сценарии внешних инструментов или вручную, если у вас уже есть рабочая база данных.

Первый код должен быть включен в разработку системы контроля версий баз данных и обеспечивает разработку распределенных баз данных.

Отправная точка, это хорошая серия:

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

Габор Плес
источник
Вы пробовали ssdt, в состоянии сравнить 2?
Джеймс
1
Да, я регулярно использую его в предыдущей версии SSDT. Я смотрел новейший по этим ссылкам: 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 /… . Я не пробовал модульный тест базы данных, но думаю, что ключ должен использоваться рядом друг с другом: codefirst и SSDT.
Габор Плес
Я скоро прочитаю эти блоги. Я не думал, что сначала код, и SSDT будет работать бок о бок. Разве вы не имеете в виду использование сначала кода во время разработки и переключение на SSDT для производства? Я буду читать ваши ссылки!
Джеймс
Я делаю код разработки базы данных первым методом. Миграция codefirst решает шаги по установке базы данных (создание новой таблицы, нового столбца в существующей таблице и т. Д.). Например, если вы хотите создать модульные тесты базы данных , вы также можете использовать SSDT. Если мы хотим сравнить две структуры , также можно использовать SSDT. По крайней мере, поэтому я им пользуюсь. Разработка и внедрение codefirst очень хорошо.
Габор Плеш
Из того, что мне кажется, SSDT идеально подходит для Db First, а из всего, что вы сказали и опубликовали, кажется, что опции миграции, добавленные в MVC4, фактически делают код первым пригодным для использования после первоначального dev!
Джеймс