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

Aktualisiert: November 2007

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 Gewusst wie: 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

    Type

    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 die ganze Zeile im Results Pane markieren.)

    ID

    Type

    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 im 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 Erstellen von Windows-basierten Anwendungen.

  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

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

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

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

Gewusst wie: Generieren des Objektmodells in Visual Basic oder C# (LINQ to SQL)

Konzepte

Übersicht über den O/R-Designer

Weitere Ressourcen

LINQ to SQL