Freigeben über


Exemplarische Vorgehensweise: Erstellen von LINQ to SQL-Klassen mit einer Vererbung für eine einzelne Tabelle (O/R-Designer)

Die LINQ to SQL-Tools in Visual Studio unterstützen die Vererbung für eine einzelne Tabelle, wie sie normalerweise in relationalen Systemen implementiert ist. Diese exemplarische Vorgehensweise erweitert die allgemeinen Schritte, die im Thema Vorgehensweise: Konfigurieren der Vererbung mit dem O/R-Designer bereitgestellt werden und liefert einige reale Daten, um die Verwendung der Vererbung im O/R-Designer zu veranschaulichen.

Im Verlauf dieser exemplarischen Vorgehensweise führen Sie die folgenden Aufgaben aus:

  • Erstellen einer Datenbanktabelle und Hinzufügen von Daten.

  • Erstellen einer Windows Forms-Anwendung.

  • Hinzufügen einer LINQ to SQL-Datei zu einem Projekt.

  • Erstellen neuer Entitätsklassen.

  • Konfigurieren der Entitätsklassen zur Verwendung von Vererbung.

  • Abfragen der geerbten Klasse.

  • Anzeigen der Daten in einem Windows Form.

Erstellen einer Tabelle, von der geerbt werden soll

Um die Funktionsweise der Vererbung kennen zu lernen, erstellen Sie eine kleine Person-Tabelle, verwenden sie als Basisklasse und erstellen anschließend ein Employee-Objekt, das von ihr erbt.

So erstellen Sie eine Basistabelle zur Veranschaulichung der Vererbung

  1. Klicken Sie in Server-Explorer oder Datenbank-Explorer mit der rechten Maustaste auf den Knoten Tabellen, und klicken Sie dann auf Neue Tabelle hinzufügen.

    Hinweis

    Sie können die Northwind-Datenbank oder eine andere Datenbank verwenden, der Sie eine Tabelle hinzufügen können.

  2. Fügen Sie der Tabelle im Tabellen-Designer die folgenden Spalten hinzu:

    Spaltenname Datentyp NULL-Werte zulassen
    ID int False
    Type int True
    Vorname nvarchar(200) False
    Nachname nvarchar(200) False
    Manager int True
  3. Legen Sie die ID-Spalte als Primärschlüssel fest.

  4. Speichern Sie die Tabelle unter dem Namen Person.

Hinzufügen von Daten zur Tabelle

Um sicherstellen zu können, dass die Vererbung ordnungsgemäß konfiguriert ist, muss die Tabelle Daten für jede Klasse in der Vererbung einer einzelnen Tabelle enthalten.

So fügen Sie der Tabelle Daten hinzu

  1. Öffnen Sie die Tabelle in der Datenansicht. (Klicken Sie in Server-Explorer oder Datenbank-Explorer mit der rechten Maustaste auf die Tabelle Person, und klicken Sie auf Tabellendaten anzeigen.)

  2. Kopieren Sie die folgenden Daten in die Tabelle. (Sie können sie kopieren und dann in die Tabelle einfügen, indem Sie im Bereich Ergebnisse die ganze Zeile markieren.)

    ID Type Vorname Nachname Manager
    1 1 Anna Wallace NULL
    2 1 Carlos Grilo NULL
    3 1 Yael Peled NULL
    4 2 Gatis Ozolins 1
    5 2 Andreas Hauser 1
    6 2 Tiffany Phuvasate 1
    7 2 Alexey Orekhov 2
    8 2 Michał Poliszkiewicz 2
    9 2 Tai Yee 2
    10 2 Fabricio Noriega 3
    11 2 Mindy Martin 3
    12 2 Ken Kwok 3

Erstellen eines neuen Projekts

Nachdem Sie die Tabelle erstellt haben, erstellen Sie ein neues Projekt zur Darstellung der Konfiguration von Vererbung.

So erstellen Sie die neue Windows Forms-Anwendung

  1. Wählen Sie in Visual Studio im Menü Datei die Optionen Neu>Projekt aus.

  2. Erweitern Sie entweder Visual C# oder Visual Basic im linken Bereich, und wählen Sie dann Windows Desktop aus.

  3. Wählen Sie im mittleren Bereich den Projekttyp Windows Forms-App aus.

  4. Benennen Sie das Projekt mit InheritanceWalkthrough, und wählen Sie dann OK aus.

    Das InheritanceWalkthrough-Projekt wird erstellt und dem Projektmappen-Explorer hinzugefügt.

Hinzufügen einer LINQ to SQL-Klassendatei zum Projekt

So fügen Sie dem Projekt eine LINQ to SQL-Datei hinzu

  1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

  2. Klicken Sie auf die Vorlage LINQ to SQL Classes und wählen Sie dann Hinzufügen aus.

    Die .dbml-Datei wird dem Projekt hinzugefügt und der O/R-Designer wird geöffnet.

Erstellen der Vererbung mithilfe des O/R-Designers

Konfigurieren Sie die Vererbung, indem Sie aus der Toolbox ein Objekt aus dem Bereich Vererbung auf die Entwurfsoberfläche ziehen.

So erstellen Sie die Vererbung

  1. Navigieren Sie in Server-Explorer oder Datenbank-Explorer zu der zuvor von Ihnen erstellten Tabelle Person.

  2. Ziehen Sie die Tabelle Person auf die Designoberfläche von O/R-Designer.

  3. Ziehen Sie eine zweite Tabelle Person auf den O/R-Designer, und ändern Sie ihren Namen in Employee.

  4. Löschen Sie die Manager-Eigenschaft aus dem Objekt Person.

  5. Löschen Sie die Eigenschaften Type, ID, FirstName und LastName aus dem Objekt Employee. (Mit anderen Worten: Entfernen Sie alle Eigenschaften außer Manager.)

  6. Erstellen Sie von der Registerkarte Objektrelationaler Designer der Toolbox eine Vererbung zwischen dem Person-Objekt und dem Employee-Objekt. Klicken Sie dazu in der Toolbox auf das Element Vererbung, und lassen Sie die Maustaste los. Klicken Sie anschließend im O/R-Designer zuerst auf das Employee-Objekt und dann auf das Person-Objekt. Der Pfeil in der Vererbungszeile zeigt dann auf das Person-Objekt.

  7. Klicken Sie auf die Linie der Vererbung auf der Entwurfsoberfläche.

  8. Legen Sie die Eigenschaft Diskriminatoreigenschaft auf Type fest.

  9. Legen Sie die Eigenschaft Diskrimatorwert der abgeleiteten Klasse auf 2 fest.

  10. Legen Sie die Eigenschaft Basisklassen-Diskrimatorwert auf 1 fest.

  11. Legen Sie die Vererbungsstandard-Eigenschaft auf Person fest.

  12. Erstellen Sie das Projekt.

Abfragen der geerbten Klasse und Anzeigen der Daten im Formular

Im Folgenden fügen Sie dem Formular Code zur Abfrage einer bestimmten Klasse im Objektmodell hinzu.

So erstellen Sie eine LINQ-Abfrage und zeigen die Ergebnisse im Formular an

  1. Ziehen Sie eine ListBox auf Form1.

  2. Doppelklicken Sie auf das Formular, um einen Form1_Load-Ereignishandler zu erstellen.

  3. Fügen Sie dem Form1_Load -Ereignishandler folgenden Code hinzu:

    NorthwindDataContext dc = new DataClasses1DataContext();
    var results = from emp in dc.Persons
                  where emp is Employee
                  select emp;
    
    foreach(Employee Emp in results)
    {
        listBox1.Items.Add(Emp.LastName)
    }
    

Testen der Anwendung

Führen Sie die Anwendung aus, und überprüfen Sie, ob alle im Listenfeld angezeigten Datensätze Mitarbeiter sind (Datensätze, die den Wert 2 in der Type-Spalte enthalten).

So testen Sie die Anwendung

  1. Drücken Sie F5.

  2. Stellen Sie sicher, dass nur Datensätze angezeigt werden, die den Wert 2 in ihrer Type-Spalte enthalten.

  3. Schließen Sie das Formular. (Klicken Sie im Menü Debuggen auf Debuggen beenden.)