2010-12-13 3 views
1

hello Я хочу изменить структуру моей базы данных в соответствии с файлом edmx моего объекта? Я знаю, как создать базу данных:Alter Database in Entity

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

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

ответ

1

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

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

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

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

+1

+1. FYI: один инструмент, который может генерировать скрипты изменений (изменить таблицу ... и т. Д.) Для моделей EF - это моя надстройка для VS2010: http://huagati.com/edmxtools/ – KristoferA

Смежные вопросы