Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Im Artikel “Beispieldaten generieren mit Bogus” haben wir gezeigt, wie Sie grundsätzlich Beispieldaten mit der Erweiterung Bogus erzeugen. Dort haben wir allerdings noch offen gelassen, wie Sie solche Daten erzeugen, die in verknüpften Tabellen gespeichert werden sollen – also beispielsweise in zwei Tabellen namens “Kunden” und “Bestellungen”, wobei die Tabelle “Bestellungen” über ein Fremdschlüsselfeld namens “KundeID” mit der Tabelle “Kunden” verknüpft ist. Wie das gelingt, und welche Techniken noch interessant sind für das Schreiben von Beispieldaten über ein Entity Data Model direkt in die zugrunde liegenden Tabellen, beschreiben wir im vorliegenden Artikel.
Beispielprojekt erstellen
Wir erstellen ein einfaches Beispielprojekt des Typs WPF-App (für Visual Basic) namens BeispieldatenGenerieren. Diesem fügen wir ein Entity Data Model hinzu, das wir BeispieldatenContext nennen (Menüeintrag Projekt|Neues Element hinzufügen…) und das den Typ Leeres Code First-Modell erhalten soll. Für dieses Projekt legen wir als Erstes eine Klasse namens Kunde an, die wie folgt aussieht:
Partial Public Class Kunde
Public Overridable Property ID As Int32
Public Overridable Property Vorname As String
Public Overridable Property Nachname As String
Public Overridable Property Firma As String
Public Overridable Property Strasse As String
Public Overridable Property PLZ As String
Public Overridable Property Ort As String
Public Overridable Property Land As String
Public Overridable Property EMail As String
End Class
Außerdem fügen wir eine Klasse namens Bestellung hinzu:
Partial Public Class Bestellung
Public Overridable Property ID As Int32
Public Overridable Property Bestelldatum As DateTime
Public Overridable Property Kunde As Kunde
End Class
Damit wir auch eine m:n-Beziehung abbilden können, legen wir noch eine Klasse Produkt und eine Klasse Bestellpositionen an:
Partial Public Class Bestellposition
Public Overridable Property ID As Int32
Public Overridable Property ProduktID As Int32
Public Overridable Property BestellungID As Int32
Public Overridable Property Produkt As Produkt
Public Overridable Property Bestellung As Bestellung
Public Overridable Property Einzelpreis As Decimal
Public Overridable Property Menge As Int32
End Class
Partial Public Class Produkt
Public Overridable Property ID As Int32
Public Overridable Property Produktname As String
Public Overridable Property Einzelpreis As Decimal
Public Overridable Property Bestellpositionen As ICollection(Of Bestellposition)
End Class
Der Klasse BeispieldatenContext.vb fügen wir eine DbSet-Definition für die vorgestellten Klasse hinzu. Außerdem legen wir in der Konstruktor-Methode New fest, dass die noch zu definierende Klasse BeispieldatenInitializer zum Initialisieren der Datenbank verwendet werden soll:
Public Class BeispieldatenContext Inherits DbContext Public Sub New() MyBase.New("name=BeispieldatenContext") Database.SetInitializer(New BeispieldatenInitializer()) End Sub Public Overridable Property Kunden() As DbSet(Of Kunde) Public Overridable Property Bestellungen() As DbSet(Of Bestellung) Public Overridable Property Produkte() As DbSet(Of Produkt) Public Overridable Property Bestellpositionen() As DbSet(Of Bestellposition) End Class
Schließlich legen wir hier noch fest, dass die Elemente der Klassen Kunde, Bestellung, Bestellposition und Produkt in den Tabellen Kunden, Bestellungen, Bestellpositionen und Produkte landen sollen:
Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder) MyBase.OnModelCreating(modelBuilder) modelBuilder.Entity(Of Kunde)().ToTable("Kunden") modelBuilder.Entity(Of Bestellung)().ToTable("Bestellungen") modelBuilder.Entity(Of Bestellposition)().ToTable("Bestellpositionen") modelBuilder.Entity(Of Produkt)().ToTable("Produkte") End Sub
Bogus zum Projekt hinzufügen
Danach fügen wir das Bogus-Paket zum Projekt hinzu. Dazu wählen Sie den Menüeintrag Projekt|NuGet-Pakete verwalten aus. Dies öffnet ein neues Fenster, indem Sie zum Bereich Durchsuchen wechseln. Hier geben Sie im Suchfeld den Text Bogus ein und finden gleich das passende Paket von Brian Chavez vor.
Markieren Sie dieses und starten die Installation mit einem Klick auf die Schaltfläche Installieren (siehe Bild 1).

Bild 1: Hinzufügen des Pakets Bogus
Kundentabelle mit Bogus füllen
