Freigeben über


LINQ to SQL-Tools in Visual Studio

LINQ to SQL war die erste objektrelationale Zuordnungstechnologie, die von Microsoft veröffentlicht wurde. Es funktioniert gut in grundlegenden Szenarien und wird in Visual Studio weiterhin unterstützt, aber es befindet sich nicht mehr in der aktiven Entwicklung. Verwenden Sie LINQ to SQL, wenn Sie eine ältere Anwendung verwalten, die sie bereits verwendet, oder in einfachen Anwendungen, die SQL Server verwenden und keine Zuordnung mit mehreren Tabellen erfordern. Im Allgemeinen sollten neue Anwendungen das Entity Framework verwenden, wenn eine objektrelationale Zuordnungsebene erforderlich ist.

Installieren Sie die LINQ to SQL-Tools

In Visual Studio erstellen Sie LINQ to SQL-Klassen, die SQL-Tabellen darstellen, indem Sie den Object Relational Designer (O/R Designer) verwenden. Der objektrelationale Designer ist die Benutzeroberfläche zum Bearbeiten von .dbml-Dateien. Das Bearbeiten .dbml Dateien mit einer Designeroberfläche erfordert die LINQ to SQL-Tools, die standardmäßig nicht als Teil der Workloads von Visual Studio installiert sind.

Um die LINQ to SQL-Tools zu installieren, starten Sie das Visual Studio-Installationsprogramm, wählen Sie Ändernaus, und wählen Sie dann die Registerkarte einzelne Komponenten aus, und wählen Sie dann LINQ to SQL-Tools aus, unter der Kategorie Codetools.

Was ist der O/R-Designer?

Der O/R-Designer verfügt über zwei unterschiedliche Bereiche auf der Entwurfsoberfläche: den Bereich "Entitäten" auf der linken Seite und den Methodenbereich auf der rechten Seite. Der Entitätsbereich ist die Hauptentwurfsoberfläche, auf der die Entitätsklassen, Zuordnungen und Vererbungshierarchien angezeigt werden. Der Methodenbereich ist die Designoberfläche, auf der die DataContext-Methoden angezeigt werden, die gespeicherten Prozeduren und Funktionen zugeordnet sind.

Der O/R Designer bietet eine visuelle Entwurfsoberfläche zum Erstellen LINQ to SQL Entitätsklassen und Zuordnungen (Beziehungen), die auf Objekten in einer Datenbank basieren. Mit anderen Worten: Der O/R Designer erstellt ein Objektmodell in einer Anwendung, die Objekten in einer Datenbank zugeordnet ist. Außerdem generiert das Modell eine stark typisierte DataContext-Klasse, das Daten an die Entitätsklassen sendet und aus der Datenbank empfängt. Der O/R Designer bietet auch Funktionen zum Zuordnen gespeicherter Prozeduren und Funktionen zu DataContext Methoden zum Zurückgeben von Daten und zum Auffüllen von Entitätsklassen. Schließlich bietet der O/R Designer die Möglichkeit, Vererbungsbeziehungen zwischen Entitätsklassen zu entwerfen.

Öffnen des O/R-Designers

Um Ihrem Projekt ein LINQ to SQL-Entitätsmodell hinzuzufügen, wählen Sie Project>Neues Element hinzufügenaus, und wählen Sie dann LINQ to SQL Classes aus der Liste der Projektelemente aus:

Screenshot: LINQ to SQL-Klassen

Visual Studio erstellt eine .dbml Datei und fügt sie Ihrer Lösung hinzu. Dies ist die XML-Zuordnungsdatei und die zugehörigen Codedateien.

Screenshot: LINQ to SQL-Klassen im Projektmappen-Explorer

Wenn Sie die .dbml Datei auswählen, zeigt Visual Studio die O/R Designer Oberfläche an, mit der Sie das Modell visuell erstellen können. Die folgende Abbildung zeigt den Designer, nachdem die Northwind-Tabellen Customers und Orders aus dem Server-Explorer gezogen wurden. Beachten Sie die Beziehung zwischen den Tabellen.

Screenshot, der den LINQ to SQL Designer zeigt.

Wichtig

Der O/R Designer ist ein einfacher objektrelationaler Mapper, da er nur 1:1-Zuordnungsbeziehungen unterstützt. Mit anderen Worten, eine Entitätsklasse kann nur eine 1:1-Zuordnungsbeziehung mit einer Datenbanktabelle oder -ansicht haben. Komplexe Zuordnung, z. B. das Zuordnen einer Entitätsklasse zu einer verknüpften Tabelle, wird nicht unterstützt. verwenden Sie das Entity Framework für komplexe Zuordnungen. Darüber hinaus ist der Designer ein einseitiger Code-Generator. Das bedeutet, dass nur die Änderungen, die Sie auf der Designeroberfläche vornehmen, in der Codedatei abgebildet werden. Manuelle Änderungen an der Codedatei werden nicht im O/R Designerwidergespiegelt. Alle Änderungen, die Sie manuell in der Codedatei vornehmen, werden überschrieben, wenn der Designer gespeichert und der Code neu generiert wird. Informationen zum Hinzufügen von Benutzercode und Erweitern der klassen, die vom O/R Designergeneriert werden, finden Sie unter How to: Extend code generated by the O/R Designer.

Erstellen und Konfigurieren von DataContext

Nachdem Sie einem Projekt ein LINQ to SQL Classes Element hinzugefügt und den O/R Designeröffnen, stellt die leere Entwurfsoberfläche eine leere DataContext bereit zur Konfiguration dar. die DataContext wird mit Verbindungsinformationen konfiguriert, die vom ersten Element bereitgestellt werden, das auf die Entwurfsoberfläche gezogen wird. Deshalb wird die Klasse DataContext mithilfe der Verbindungsinformationen des ersten Elements konfiguriert, das auf der Designoberfläche abgelegt wird. Weitere Informationen zur DataContext Klasse finden Sie unter DataContext-Methoden (O/R Designer).

Erstellen von Entitätsklassen, die Datenbanktabellen und -ansichten zugeordnet sind

Sie können Entitätsklassen erstellen, die Tabellen und Ansichten zugeordnet sind, indem Sie Datenbanktabellen und -ansichten aus Server-Explorer oder Datenbank-Explorer auf die O/R Designerziehen. Wie im vorherigen Abschnitt angegeben, wird die DataContext mit Verbindungsinformationen konfiguriert, die vom ersten Element bereitgestellt werden, das auf die Entwurfsoberfläche gezogen wird. Wenn ein nachfolgendes Element, das eine andere Verbindung verwendet, dem O/R Designerhinzugefügt wird, können Sie die Verbindung für die DataContextändern. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen von LINQ to SQL-Klassen, die Tabellen und Sichten zugeordnet sind (objektrelationaler Designer).

Erstellen von DataContext-Methoden, die gespeicherte Prozeduren und Funktionen aufrufen

Sie können DataContext Methoden erstellen, die gespeicherte Prozeduren und Funktionen aufrufen (zugeordnet sind), indem Sie sie aus Server-Explorer oder Datenbank-Explorer auf den O/R Designerziehen. Gespeicherte Prozeduren und Funktionen werden dem O/R Designer als Methoden der DataContexthinzugefügt.

Anmerkung

Wenn Sie gespeicherte Prozeduren und Funktionen aus Server-Explorer oder Datenbank-Explorer auf den O/R Designerziehen, unterscheidet sich der Rückgabetyp der generierten DataContext-Methode je nachdem, wo Sie das Element ablegen. Weitere Informationen finden Sie unter DataContext-Methoden (O/R Designer).

Konfigurieren eines DataContext für die Verwendung gespeicherter Prozeduren zum Speichern von Daten zwischen Entitätsklassen und einer Datenbank

Wie bereits erwähnt, können Sie DataContext Methoden erstellen, die gespeicherte Prozeduren und Funktionen aufrufen. Sie können außerdem gespeicherte Prozeduren zuweisen, die das Standardlaufzeitverhalten von LINQ to SQL verwenden, das Einfügungen, Aktualisierungen und Löschvorgänge ausführt. Weitere Informationen finden Sie unter Vorgehensweise: Zuweisen gespeicherter Prozeduren zum Durchführen von Aktionen zum Aktualisieren, Einfügen und Löschen (objektrelationaler Designer).

Vererbung und der O/R-Designer

Wie andere Objekte können LINQ to SQL-Klassen Vererbung verwenden und von anderen Klassen abgeleitet werden. In einer Datenbank werden Vererbungsbeziehungen auf verschiedene Arten erstellt. Der objektrelationale Designer unterstützt das häufig in relationalen Systemen implementierte Konzept der Einzeltabellenvererbung. Weitere Informationen finden Sie unter So konfigurieren Sie Vererbung mit dem O/R Designer.

LINQ to SQL-Abfragen

Die entitätsklassen, die vom O/R Designer erstellt wurden, sind für die Verwendung mit Language Integrated Query (LINQ)-konzipiert. Weitere Informationen finden Sie unter So geht's: Informationen abfragen.

Trennen des erstellten DataContext- und Entitätsklassencodes in verschiedene Namespaces

Der O/R-Designer stellt die Eigenschaften Kontextnamespace und Entitätsnamespace auf der DataContextbereit. Diese Eigenschaften bestimmen, in welchem Namespace der DataContext- und Entitätsklassencode generiert wird. Standardmäßig sind diese Eigenschaften leer, und die DataContext und Entitätsklassen werden im Namespace der Anwendung generiert. Um den Code in einem anderen Namespace als dem Namespace der Anwendung zu generieren, geben Sie einen Wert in die Eigenschaften Kontextnamespace und/oder Entitätsnamespace ein.

Referenzinhalt

Siehe auch