Точка 1 может быть решена с помощью: разработчик пишет сценарий, разработчик передает сценарий DBA, DBA запускает сценарий:)
Точка 2:
Вам не нужно удалять базу данных вКод-первых.Обычный способ в производственном процессе - отключить инициализатор базы данных (в любом случае они в основном предназначены только для фазы разработки):
Database.SetInitializer<MyContext>(null);
Таким образом, ваше приложение не затрагивает схему базы данных во время выполнения.Однако вы получите исключения, если ваша модель больше не соответствует схеме базы данных.Чтобы перейти на новую схему, вам нужно будет изменить схему вручную или с помощью сценариев (передать ее администратору базы данных) в соответствии с вашими изменениями в модели.
Для подхода Database-First вы должны сделать то же самое,Я полагаю, что и для Model-First тоже, потому что сценарии, которые Model-First создает по умолчанию, начинаются с удаления существующей базы данных.Ни один из подходов не создает для вас сценарии изменений, которые только обновляют существующую схему базы данных.Они всегда создают схему с нуля.
Так что, на мой взгляд, упомянутые вами пункты не являются основанием для принятия решения за или против Code-First.