Я пытаюсь использовать первые миграции EF-кода для создания базы данных, если она не существует. До сих пор я успешно прошел Enabled-Migrations
. Я также использовал Add-Migrations
, чтобы выполнить начальную миграцию, которая создает базу данных. Сценарий находится в направлении Migrations и выглядит правильно.MigrateDatabaseToLatestVersion инициализатор не удается создать базу данных
Это тело моего главного метода
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>());
var directConfigContext = new MyDbContext();
Все, что я читал, что говорит, что это все, что мне нужно. MyDbContext
в app.config
и выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MyDbContext" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=DbConfig;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Кроме того, если я использую класс DbMigrator предоставленный EF, база данных построена корректно (предположительно с использованием первоначальной миграции сценария базы данных).
// This is how it actually works including creating the database if it doesn't exist.
var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();
Из того, что я понимаю, установив инициализатору на MyDbContext
и потом инстанцировании что DbContext
должны создать базу данных до последней миграции ... Что мне не хватает?