Как программно создать базу данных из ADO.Net Entity Model? - PullRequest
0 голосов
/ 10 июня 2010

Я использую .Net Framework 4.0. У меня есть модель сущности (.edmx), и в моей программе есть пункт меню для подключения к существующей базе данных или создания новой. Когда пользователь выбирает создание новой базы данных, я хочу создать базу данных и схему из модели сущностей. Есть идеи как это сделать?

Ответы [ 2 ]

1 голос
/ 10 июня 2010

Не делай этого. Он будет работать только на ваших продуктах v1, и как только вы планируете выпустить v1.1, вы поймете, что у вас нет возможности обновить существующие развернутые базы данных до новой схемы.

Вместо этого используйте сценарии для создания всех ваших объектов (включая индексы, отношения, ограничения, все) и используйте сценарии обновления, чтобы контролировать, как обновить каждую версию схемы до следующей версии, как описано в Контроль версий и ваша база данных. .

Более слабая альтернатива - иметь проект базы данных Visual Studio в вашем решении, поскольку проекты VSDB имеют возможности обновления, хотя и основаны на diff. Они позволяют вам развертывать файлы .dbschema с помощью инструмента vsdbcmd , и этот инструмент может изменять и обновлять существующую схему. Вы можете преобразовать выходные данные проекта VSDB в модель EF с помощью шага преобразования сборки (это не тривиально, но возможно).

В целом, не поддавайтесь соблазну моделирования EF (или Linq) как определения master вашей схемы. Вы заплатите большую цену позже.

...