Как обновить базу данных программно в EntityFramework Codefirst?

Я пишу простую структуру CMS по ASP.NET MVC (для окончательного проекта колледжа). Моя проблема связана с стратегией переноса данных модуля. Каждый модуль будет обновлять схему базы данных при ее установке, миграцию базы данных механизм должен быть реализован в модульной установке system.ok, data-migration в инфраструктуре сущности уже существует (благодаря MS), но команды миграции выполняются в консоли диспетчера пакетов. Есть ли способ запустить код data-migration Programmatically? любая помощь очень ценится.

Ответ 2

Если вы включили автоматическую миграцию в консоли диспетчера пакетов, вы можете использовать следующий код в разделе инициализации вашего приложения (например, в SimpleMembershipInitializer):

var migratorConfig = new Migrations.Configuration();
var dbMigrator = new DbMigrator(migratorConfig); 
dbMigrator.Update();

Где Migrations.Configuration - это класс конфигурации миграции, размещенный в вашем проекте, в ваше пространство имен (YourProjectNamespace.Migrations).

Если вы используете его программно, вы должны сначала отключить инициализатор EF:

Database.SetInitializer<YourDBContext>(null);

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