2016-06-05 6 views
0

В новом шаблоне ASP.NET Core RC2 (без базы данных, доступной в фоновом режиме), когда я пытаюсь зарегистрировать пользователя, он выдает следующую ошибку для добавления Migrations.Миграции схемы базы данных ядра RC2 Core RC2

enter image description here

В то время как в прошлом, использовать для создания базы данных для нас без добавления начальной миграции, когда мы запускаем приложение. Есть ли способ создать базу данных в ASP.NET Core RC2 без начальной миграции?

+2

Является ли это ядром Entity Framework? Вам нужна Database.EnsureCreated(); https://wildermuth.com/2015/3/17/A_Look_at_ASP_NET_5_Part_3_-_EF7 –

ответ

1

Для тестирования сценария вы можете использовать context.Database.EnsureCreatedAsync() где-то во время запуска. Убедитесь, что вы используете this pattern (на данный момент) и не вводите его непосредственно в configure, чтобы избежать проблем при запуске.

Для дальнейшего использования раздел кода, скопированный из примера приложения MusicStore.

using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope()) 
{ 
    var db = serviceScope.ServiceProvider.GetService<MusicStoreContext>(); 

    if (await db.Database.EnsureCreatedAsync()) 
    { 
     await InsertTestData(serviceProvider); 
     if (createUsers) 
     { 
      await CreateAdminUser(serviceProvider); 
     } 
    } 
} 

потому что на данный момент, возможности пока нет. Если позднее вы захотите применить миграцию, вы можете использовать context.Database.AsRelational().ApplyMigrations() (GitHub issue)

+0

Спасибо. Мне не хватало 'Database.EnsureCreated()'. –

-1

Я думаю, единственной альтернативой является создание базы данных вручную, возможно, с помощью Sql обозревателя объектов сервера ...

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