Exemplarische Vorgehensweise: Erstellen von LINQ to SQL-Klassen mithilfe von Vererbung einer einzelnen Tabelle (O/R-Designer)

Der Object Relational Designer (O/R-Designer) unterstützt Vererbung einer einzelnen Tabelle, wie sie typischerweise in relationalen Systemen implementiert ist. Diese exemplarische Vorgehensweise baut auf den in Vorgehensweise: Konfigurieren von Vererbung mit dem O/R-Designer dargestellten allgemeinen Schritten auf und stellt reale Daten zur Veranschaulichung der Verwendung von Vererbung in O/R-Designer bereit.

Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende 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/Datenbank-Explorer mit der rechten Maustaste auf den Knoten Tabellen, und klicken Sie 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 zulassen

    ID

    int

    False

    Typ

    int

    True

    FirstName

    nvarchar(200)

    False

    LastName

    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/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 Ergebnisbereich die ganze Zeile markieren.)

    ID

    Typ

    FirstName

    LastName

    Manager

    1

    1

    Anne

    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 neues Projekts

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

So erstellen Sie die neue Windows-Anwendung

  1. Erstellen Sie über das Menü Datei ein neues Projekt.

  2. Nennen Sie das Projekt InheritanceWalkthrough.

    Hinweis

    Der O/R-Designer wird von Visual Basic- und C#-Projekten unterstützt.Erstellen Sie das neue Projekt in einer der beiden Sprachen.

  3. Klicken Sie auf die Vorlage Windows Forms-Anwendung und anschließend auf OK. Weitere Informationen finden Sie unter Entwickeln von Clientanwendungen mit .NET Framework.

  4. 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-Klassen und dann auf Hinzufügen.

    Dem Projekt wird die DBML-Datei 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/Datenbank-Explorer zu der zuvor von Ihnen erstellten Tabelle Person.

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

  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 O/R-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 der Vererbungslinie zeigt auf das Person-Objekt.

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

  8. Legen Sie die Eigenschaft Unterscheidungseigenschaft 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:

    Dim dc As New DataClasses1DataContext
    Dim results = From emp In dc.Persons _
        Where TypeOf emp Is Employee _
        Select emp
    
    For Each Emp As Employee In results
        ListBox1.Items.Add(Emp.LastName)
    Next
    
    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 haben).

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 haben.

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

Siehe auch

Aufgaben

Vorgehensweise: Hinzufügen von LINQ to SQL-Klassen zu einem Projekt (O/R-Designer)

Exemplarische Vorgehensweise: Erstellen von LINQ to SQL-Klassen (O/R-Designer)

Vorgehensweise: Zuweisen von gespeicherten Prozeduren zur Durchführung von Update-, Einfüge- und Löschvorgängen (O/R-Designer)

Vorgehensweise: Generieren des Objektmodells in Visual Basic oder C#

Konzepte

Übersicht über den O/R-Designer

Weitere Ressourcen

LINQ to SQL [LINQ to SQL]