2017-01-21 10 views
0

Ich erstelle ein Football-Manager-Spiel. Ich habe Identity 2.0 verwendet, da es für meine Registrierung und Anmeldung gut funktioniert. Ich war in der Lage, die zusätzlichen Tabellen hinzuzufügen, die benötigt wurden, aber jetzt muss ich die Daten wie Mannschaften und Spieler zu diesen Tabellen säen. Irgendeine Idee, wie man das macht? Die zusätzlichen Tabellen wurden in den Identitätsmodellen mithilfe von Migrationen erstellt. Hier ist ein Bild der Tabellen, die ich verwende.Wie kann ich Daten in bereits erstellte Datenbanken importieren?

tables

+0

Identität Saatgut finden Sie [hier] (http: // Stackoverflow. com/questions/29526215/seed-entities-and-users-rollen/29547994 # 29547994). Zu den anderen Tabellen siehe [hier] (http://stackoverflow.com/questions/36896475/database-initialization-in-entity-framework-code-first/36897524#36897524) –

Antwort

0

Im Migrations-Ordner gibt es eine Datei einige Seed-Daten erstellen genannt Configuration.cs mit der Seed-Methode, die Sie verwenden können.

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() 
     }); 
} 

Starten Sie einfach Update-Datenbank und Sie sollten Daten in Ihren Tabellen haben.

0

Es sind 2 Seed() -Methoden verfügbar - eine in bestimmten Initialisierungen wie CreateDatabaseIfNotExist, die bei jeder Erstellung der Datenbank ausgeführt wird. Die andere ist die migration Seed(), die ausgeführt wird, wenn Sie eine Migration über update-database anwenden.

Da es mit jeder Migration ausgeführt wird, möchten Sie sicherstellen, dass Sie Ihre Daten nicht duplizieren. Sie können dies tun, indem sie die Existenz Überprüfung:

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

} 

Aber es gibt einen besseren Weg, die speziell für genannt Migrationen entwickelt 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(); 
} 
Verwandte Themen