Datenseeding bei Schemamigrationen in Entity Framework Core 15.10.2018, 00:00 Uhr

Daten säen

Das Füllen von Datenbanken bei Schemamigrationen ist wieder da – leider nur unvollkommen.
Seit Version 4.1 gibt es im klassischen ADO.NET Entity Framework (EF) das Vorgehensmodell Code First mit Schemamigrationen. Dabei lässt sich beim Anlegen einer Tabelle in der Datenbank diese direkt mit Daten füllen. Dies nennt sich Datenseeding. Es wird unterstützt durch die Methode Seed() in der von DbMigrationsConfiguration<Kontext­name> abgeleiteten Konfigurationsklasse (siehe Listing 1).
Listing 1: Datenseeding im klassischen ADO.NET Entity Framework [6]
protected override void Seed(

  BookService.Models.BookServiceContext context)

{

  context.Authors.AddOrUpdate(x => x.Id,

    new Author() { Id = 1, Name = "Jane Austen" },

    new Author() { Id = 2, Name = "Charles Dickens" },

    new Author() { Id = 3,

      Name = "Miguel de Cervantes" }

  );



  context.Books.AddOrUpdate(x => x.Id,

    new Book() { Id = 1,

      Title = "Pride and Prejudice", Year = 1813,

        AuthorId = 1,

      Price = 9.99M, Genre = "Comedy of manners" },

    new Book() { Id = 2, Title = "Northanger Abbey",

      Year = 1817, AuthorId = 1, Price = 12.95M,

      Genre = "Gothic parody" },

    new Book() { Id = 3, Title = "David Copperfield",

      Year = 1850, AuthorId = 2, Price = 15,

      Genre = "Bildungsroman" },

    new Book() { Id = 4, Title = "Don Quixote",

      Year = 1617, AuthorId = 3, Price = 8.95M,

      Genre = "Picaresque" }

  );

}

dotnetpro

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde
  • 2 Monate Gratis testen
  • Über 4.000 qualifizierte Fachartikel
  • Auf jedem Gerät verfügbar