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