Никогда не имейте MDF-файл в дереве исходного кода разработки. MDF - это результат развертывания приложения, а не части его источников. Мышление в базе данных с точки зрения источника разработки является кратчайшим путем в ад.
Все результаты разработки должны быть сценариями, которые развертывают или обновляют базу данных. Любое изменение, независимо от того, насколько оно мало, принимает форму сценария. Некоторые рекомендуют использовать инструменты сравнения, но я думаю, что они - крысиная нора. Я отстаиваю версию метаданных базы данных и наличие сценариев для обновления с версии N до версии N + 1. При развертывании приложение может проверить текущую развернутую версию, а затем запускает все сценарии обновления, которые переводят версию в текущую. Нет сценария для непосредственного развертывания текущей версии, новое развертывание развертывает сначала v0 базы данных, затем проходит все обновления версии, включая удаление объекта, который больше не используется. Хотя это может показаться немного экстремальным, именно так SQL Server сам отслеживает различные изменения, происходящие в базе данных между выпусками.
Как простые текстовые сценарии, все сценарии обновления базы данных хранятся в системе контроля версий, как и любые другие источники, с отслеживанием изменений, проверкой изменений и проверкой регистрации.
Более подробное обсуждение и некоторые примеры см. В Контроль версий и ваша база данных .