Я пишу простую структуру CMS
по ASP.NET MVC (для окончательного проекта колледжа). Моя проблема связана с стратегией переноса данных модуля. Каждый модуль будет обновлять схему базы данных при ее установке, миграцию базы данных механизм должен быть реализован в модульной установке system.ok, data-migration
в инфраструктуре сущности уже существует (благодаря MS), но команды миграции выполняются в консоли диспетчера пакетов. Есть ли способ запустить код data-migration
Programmatically?
любая помощь очень ценится.
Как обновить базу данных программно в EntityFramework Codefirst?
Ответ 1
Этот класс предоставляет EF-миграции в коде:
System.Data.Entity.MigrateDatabaseToLatestVersion
В EF миграции работают на всю базу данных, хотя и не являются модульными частями одного.
Просто нашла этот класс:
Ответ 2
Если вы включили автоматическую миграцию в консоли диспетчера пакетов, вы можете использовать следующий код в разделе инициализации вашего приложения (например, в SimpleMembershipInitializer):
var migratorConfig = new Migrations.Configuration();
var dbMigrator = new DbMigrator(migratorConfig);
dbMigrator.Update();
Где Migrations.Configuration - это класс конфигурации миграции, размещенный в вашем проекте, в ваше пространство имен (YourProjectNamespace.Migrations).
Если вы используете его программно, вы должны сначала отключить инициализатор EF:
Database.SetInitializer<YourDBContext>(null);
Дело в том, что программное обновление создает базу данных, если она не существует.