База данных Entity Framework из модели - PullRequest
0 голосов
/ 28 октября 2011

У меня есть несколько вопросов о создании базы данных из модели.

Возможно ли это сделать во время выполнения? Я знаю, что вы можете создать Create SQL в конструкторе, но как насчет во время выполнения?

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

Существует ли автоматический способ обработки изменений? Например, если я обновлю сущность / таблицу, мне придется вручную изменять таблицу или есть что-то, чтобы справиться с этим?

Что происходит в EntityContext.CreateDatabase для sqlce? Когда я это называю, мне приходится заново создавать контекст, иначе я не могу создать таблицы, так как они уже «существуют». Но они на самом деле не существуют, так как любые вставленные данные не сохраняются.

1 Ответ

2 голосов
/ 28 октября 2011

Абсолютно. Если ваша база данных не существует, она создаст ее, если вы указали В вашем конструкторе:


static EntityContext()
{
//for example to create a db:
Database.SetInitializer(new CreateDatabaseIfNotExists());
}

Что вы подразумеваете под воссозданием контекста? Если вы укажете База данных. в вашей инициализации будет создана база данных SQL CE. К сожалению, модель становится исходным источником изменений. Будущие изменения должны быть внесены как в базу данных, так и в модель.

Строка подключения SQL CE такова:

<add name="EntityDemoSite.DataAccess.EntityContext" connectionString="Data Source=|DataDirectory|test.sdf" providerName="System.Data.SqlServerCe.4.0" />

обратите внимание, что имя должно соответствовать полному пространству имен класса контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...