2017-01-21 2 views
0

Я создаю игру футбольного менеджера. Я использовал идентификатор 2.0, так как он будет хорошо работать для моей регистрации и входа в систему. Я смог добавить дополнительные таблицы, которые были нужны, но теперь мне нужно засеять такие данные, как команды и игроки, в эту таблицу. Есть идеи, как это сделать? Дополнительные таблицы были созданы в моделях идентификации с использованием миграции. Вот изображение таблиц, которые я использую.Как я могу засеять данные в уже созданную базу данных?

tables

+0

потомству Идентичность см [здесь] (HTTP: // StackOverflow. ком/вопросы/29526215/семя-объекты и-пользователи-роли/29547994 # 29547994). Что касается других таблиц, см. [Здесь] (http://stackoverflow.com/questions/36896475/database-initialization-inity-framework-code-first/36897524#36897524) –

ответ

0

В папке Миграции, есть файл с именем Configuration.cs с помощью метода Seed, который можно использовать для создания некоторых начальных данных.

protected override void Seed(ApplicationDbContext context) 
{ 
    // This method will be called after migrating to the latest version. 

    // You can use the DbSet<T>.AddOrUpdate() helper extension method 
    // to avoid creating duplicate seed data. E.g. 

    //add roles 
    context.Roles.AddOrUpdate(p => p.Id, 
     new IdentityRole() 
     { 
      Id = EnumUtility<AspNetRoles>.GetAppRoleId(AspNetRoles.None), 
      Name = AspNetRoles.None.ToString() 
     }); 
} 

Просто запустите базу данных обновлений, и у вас должны быть данные в таблицах.

0

Доступно 2 метода Seed() - один из определенных инициализаторов, таких как CreateDatabaseIfNotExist, который запускается всякий раз, когда создается база данных. Другой - это migration Seed(), который запускается всякий раз, когда вы применяете миграцию через update-database.

Поскольку он выполняется с каждой миграцией, вы хотите убедиться, что вы не дублируете свои данные. Вы можете сделать это путем проверки существования:

if (!context.Teams.Any()) 
{ 
    context.Teams.Add(new Team { Name = "Team A" }); 
    context.Teams.Add(new Team { Name = "Team B" }); 

} 

Но есть лучший способ, разработанный специально для миграции под названием AddOrUpdate:

protected override void Seed(ApplicationDbContext context) 
{ 
    context.Teams.AddOrUpdate(
     team => team.Id, // put the key or unique field here 
     new Team 
     { 
      Id = 1, 
      Name = "Team 1" 
     }, 
     new Team 
     { 
      Id = 2, 
      Name = "Team 2" 
     }); 

    context.SaveChanges(); 
} 
Смежные вопросы