Übersicht über den O/R-Designer

Der O/R-Designer (O/R-Designer) stellt eine visuelle Entwurfsoberfläche zum Erstellen von LINQ to SQL-Entitätsklassen und -Zuordnungen (Beziehungen) bereit, die auf Objekten in einer Datenbank basieren. Mit anderen Worten: Der O/R-Designer wird verwendet, um in einer Anwendung ein Objektmodell zu erstellen, das den Objekten in einer Datenbank entspricht. Außerdem generiert er einen stark typisierten DataContext, mit dem Daten an die Entitätsklassen gesendet und aus der Datenbank empfangen werden. Der O/R-Designer stellt auch Funktionen bereit, um gespeicherte Prozeduren und Funktionen DataContext-Methoden zum Zurückgeben von Daten und Füllen von Entitätsklassen zuzuordnen. Abschließend bietet der O/R-Designer die Möglichkeit, Vererbungsbeziehungen zwischen Entitätsklassen zu entwerfen.

Der O/R-Designer generiert die DBML-Datei, die die Zuordnung zu den LINQ to SQL-Klassen und den Datenbankobjekten bereitstellt. Der O/R-Designer generiert auch den typisierten DataContext und die Entitätsklassen.

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

Tipp

Der O/R-Designer unterstützt derzeit nur SQL Server 2000-, SQL Server 2005-, SQL Server 2008- und SQL Server Express-Datenbanken. Der O/R-Designer unterstützt SQL Server Compact 3.5 zwar nicht, LINQ to SQL allerdings schon. Weitere Informationen finden Sie unter SQL Server Compact 3.5 und LINQ to SQL. Informationen zum Erhalten von SQL Server Express finden Sie im Abschnitt zum Erhalt von SQL Server Express im Thema Gewusst wie: Installieren von Beispieldatenbanken.

Öffnen des O/R-Designers

Sie können den O/R-Designer öffnen, indem Sie einem Projekt ein neues LINQ to SQL-Klassen-Element hinzufügen. Ausführliche Informationen finden Sie unter Vorgehensweise: Hinzufügen von LINQ to SQL-Klassen zu einem Projekt (O/R-Designer).

Wichtig

Der O/R-Designer erstellt einfache objektrelationale Zuordnungen, da nur 1:1-Zuordnungsbeziehungen unterstützt werden. Das heißt, dass eine Entitätsklasse nur über eine 1:1-Zuordnungsbeziehung zu einer Datenbanktabelle oder -ansicht verfügen kann. Komplexe Zuordnungen, z. B. die Zuordnung einer Entitätsklasse zu einer verknüpften Tabelle, werden zurzeit nicht unterstützt. Darüber hinaus ist der Designer ein unidirektionaler Code-Generator. Das bedeutet, dass in der Codedatei nur Änderungen der Designeroberfläche wiedergegeben werden. Manuelle Änderungen der Codedatei werden nicht im O/R-Designer angezeigt. In der Codedatei vorgenommene manuelle Änderungen werden überschrieben, wenn im Designer gespeichert und Code erneut generiert wird. Weitere Informationen zum Hinzufügen von Benutzercode und Erweitern der von O/R-Designer generierten Klassen finden Sie unter Vorgehensweise: Erweitern von mit dem O/R-Designer generiertem Code.

Erstellen und Konfigurieren von DataContext

Nachdem einem Objekt ein LINQ to SQL-Klassen-Element hinzugefügt und der O/R-Designer geöffnet wurde, stellt die leere Entwurfsoberfläche einen leeren, konfigurierbaren DataContext dar. Der DataContext wird mithilfe der Verbindungsinformationen des ersten Elements konfiguriert, das auf die Entwurfsoberfläche gezogen wird. Deshalb wird der DataContext mithilfe der Verbindungsinformationen des ersten auf die Entwurfsoberfläche gezogenen Elements konfiguriert. Weitere Informationen über die 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 von Server-Explorer/Datenbank-Explorer auf den O/R-Designer ziehen. Wie bereits im vorherigen Abschnitt angegeben wurde, wird der DataContext mithilfe der Verbindungsinformationen des ersten auf die Entwurfsoberfläche gezogenen Elements konfiguriert. Wenn ein nachfolgendes Element mit einer anderen Verbindung dem O/R-Designer hinzugefügt wird, können Sie die Verbindung für DataContext ändern. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen von LINQ to SQL-Klassen, die Tabellen und Ansichten (O/R-Designer) zugeordnet sind.

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

Sie können DataContext-Methoden erstellen, die gespeicherte Prozeduren und Funktionen aufrufen oder ihnen zugeordnet sind, indem Sie sie von Server-Explorer/Datenbank-Explorer auf den O/R-Designer ziehen. Gespeicherte Prozeduren und Funktionen werden dem O/R-Designer als Methoden vom DataContext hinzugefügt.

Tipp

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

Konfigurieren von DataContext, um mithilfe von gespeicherten Prozeduren Daten zwischen Entitätsklassen und einer Datenbank zu speichern

Wie bereits angemerkt wurde, können DataContext-Methoden erstellt werden, die gespeicherte Prozeduren und Funktionen aufrufen. Weiterhin können dem standardmäßigen LINQ to SQL-Laufzeitverhalten auch gespeicherte Prozeduren zum Durchführen von Einfüge-, Update- und Löschvorgänge zugewiesen werden. Weitere Informationen finden Sie unter Vorgehensweise: Zuweisen von gespeicherten Prozeduren zur Durchführung von Update-, Einfüge- und Löschvorgängen (O/R-Designer).

Vererbung und der O/R-Designer

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

LINQ to SQL-Abfragen

Die von O/R-Designer erstellten Entitätsklassen sind zur Verwendung mit LINQ (Language-Integrated Query, sprachintegrierte Abfrage) vorgesehen. Weitere Informationen finden Sie unter Vorgehensweise: Abfragen von Informationen (LINQ to SQL).

Trennen des generierten DataContext und des Entitätsklassencodes in verschiedene Namespaces

Der O/R-Designer stellt die Context Namespace-Eigenschaft und die Entity Namespace-Eigenschaft für den DataContext bereit. Mit diesen Eigenschaften wird festgelegt in welchen Namespace der DataContext und der Entitätsklassencode generiert werden. Standardmäßig sind diese Eigenschaften leer, und der DataContext und die Entitätsklassen werden in den Namespace der Anwendung generiert. Geben Sie einen Wert in die Context Namespace-Eigenschaft und/oder die Entity Namespace-Eigenschaft ein, um den Code in einem anderen Namespace als dem der Anwendung zu generieren.

Siehe auch

Aufgaben

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)

Referenz

LINQ Allgemein Programmierhandbuch

Konzepte

Neues in der Datenanwendungsentwicklung

Weitere Ressourcen

LINQ to SQL

LINQ to ADO.NET

Object Relational Designer (O/R-Designer)