Изменить базу данных в сущности - PullRequest
1 голос
/ 13 декабря 2010

Привет, я хочу изменить структуру моей базы данных в соответствии с моим файлом edmx сущности?Я знаю, как создать базу данных:

if(myEntity.DatabaseExists())
{
   //?????
   //check database if there is any change in database alter database according to edmx file.    
}
else
{
    myEntity.CreateDatabase();
}

, почему я хочу это сделать? Я хочу установить новую версию моей программы. Я использую сущность, и мой файл edmx был изменен, поэтому моя база данных должнаизменить в соответствии с моим новым файлом EDMX.

1 Ответ

1 голос
/ 13 декабря 2010

Entity Framework не поддерживает это.Причина, по которой эта «функция» отсутствует, заключается в том, что это не так просто.Вы хотите, чтобы EF изменил вашу производственную базу данных и, возможно, удалил столбцы с данными?Я так не думаю.

Что вам нужно сделать, это создать сценарии, которые позволят вам обновить схему базы данных.Если вы хотите сделать это автоматически, вы можете добавить в свою базу данных какую-нибудь таблицу «Версия», которая содержит номер версии схемы.При запуске вы можете проверить номер версии и запустить все сценарии обновления схемы для более новых версий (в рамках транзакции).

Я всегда использую Microsoft SQL Profiler для записи изменений, вносимых в мою схему с помощью SQL Server Management Studio.,Вы также можете использовать такой инструмент, как SQL Compare (из RedGate ), чтобы сравнить две базы данных и сгенерировать сценарии для изменений.

EF не может автоматически запускать обновления для вас, вам нужно запустить эти базы данныхСценарии самостоятельно.

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