В этом сценарии рекомендуется создать установочный пакет (.msi), который установит ваше приложение и выполнит сценарий для развертывания базы данных.Скрипт может даже проверять зависимости, такие как SQL Server CE и .NET Framework.Это также решит вашу проблему с версией базы данных, потому что установочный пакет .msi хранит эту информацию, поэтому вы можете создать обновление .msi, которое будет знать, что он должен выполнять только сценарий изменения для базы данных, а не создавать новый.Имейте в виду, что создание инсталляционных пакетов - довольно сложная задача, но именно так это делается в реальных продуктах, поставляемых клиентам.Как в моей текущей, так и в предыдущей компании мы использовали WiX для создания установочных пакетов, но у нас есть специальный парень, который делает это.
Нет API для создания базы данных из файла EDMX.Кроме того, файл EDMX не является частью встроенного приложения.Генерация базы данных - это особенность VS2010, которая использует рабочий процесс или шаблон T4 для преобразования EDMX в сценарий SQL.Шаблон по умолчанию может создать только полный сценарий базы данных, и вы должны выполнить его.
Я описал способ создания сценария развертывания для новой версии базы данных в отдельный вопрос .Это связано с первым кодом (EFv4.1), но принцип тот же.Если вам нужно сохранить информацию о версии базы данных, вы можете создать для нее специальную таблицу и проверить значение в таблице в начале сценария обновления.