LINQ to SQL-Tools in Visual StudioLINQ to SQL tools in Visual Studio

LINQ to SQL war die erste Objekt relationale Mapping-Technologie, die von Microsoft veröffentlicht wurde.LINQ to SQL was the first object-relational mapping technology released by Microsoft. Dies funktioniert in einfachen Szenarien gut und wird in Visual Studio weiterhin unterstützt, ist jedoch nicht mehr in der aktiven Entwicklung.It works well in basic scenarios and continues to be supported in Visual Studio, but it's no longer under active development. 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 benötigen.Use LINQ to SQL when maintaining a legacy application that's already using it, or in simple applications that use SQL Server and do not require multi-table mapping. Im Allgemeinen sollten neue Anwendungen die Entity Framework verwenden, wenn eine Objekt relationale Mapper-Ebene erforderlich ist.In general, new applications should use the Entity Framework when an object-relational mapper layer is required.

In Visual Studio erstellen Sie LINQ to SQL Klassen, die SQL-Tabellen darstellen, mithilfe der objektrelationaler Designer (O/R-Designer).In Visual Studio, you create LINQ to SQL classes that represent SQL tables by using the Object Relational Designer (O/R Designer).

Der O/R-Designer hat zwei unterschiedliche Bereiche auf der Entwurfs Oberfläche: der Bereich Entitäten auf der linken Seite und der Bereich Methoden auf der rechten Seite.The O/R Designer has two distinct areas on its design surface: the entities pane on the left, and the methods pane on the right. Der Entitätenbereich ist die Hauptentwurfsoberfläche, auf der Entitätsklassen, Zuordnungen und Vererbungshierarchien angezeigt werden.The entities pane is the main design surface that displays the entity classes, associations, and inheritance hierarchies. Der Methodenbereich ist die Entwurfsoberfläche, auf der die DataContext-Methoden angezeigt werden, die gespeicherten Prozeduren und Funktionen zugeordnet sind.The methods pane is the design surface that displays the DataContext methods that are mapped to stored procedures and functions.

Der O/R-Designer stellt eine visuelle Entwurfs Oberfläche zum Erstellen von LINQ to SQL Entitäts Klassen und-Zuordnungen (Beziehungen) bereit, die auf Objekten in einer Datenbank basieren.The O/R Designer provides a visual design surface for creating LINQ to SQL entity classes and associations (relationships) that are based on objects in a database. Mit anderen Worten: der O/R-Designer erstellt in einer Anwendung, die Objekten in einer Datenbank zugeordnet wird, ein Objektmodell.In other words, the O/R Designer creates an object model in an application that maps to objects in a database. Außerdem wird eine stark typisierte DataContext generiert, die Daten zwischen den Entitäts Klassen und der Datenbank sendet und empfängt.It also generates a strongly-typed DataContext that sends and receives data between the entity classes and the database. Der O/R-Designer bietet auch Funktionen zum Zuordnen gespeicherter Prozeduren und Funktionen DataContext Methoden zum Zurückgeben von Daten und Auffüllen von Entitäts Klassen.The O/R Designer also provides functionality to map stored procedures and functions to DataContext methods for returning data and populating entity classes. Schließlich bietet der O/R-Designer die Möglichkeit, Vererbungs Beziehungen zwischen Entitäts Klassen zu entwerfen.Finally, the O/R Designer provides the ability to design inheritance relationships between entity classes.

Öffnen Sie den O/R-Designer.Open the O/R designer

Um dem Projekt ein LINQ to SQL Entitäts Modell hinzuzufügen, wählen Sie Projekt > Neues Element hinzufügenaus, und wählen Sie dann LINQ to SQL Klassen aus der Liste der Projekt Elemente aus:To add a LINQ to SQL entity model to your project, choose Project > Add New Item, and then select LINQ to SQL Classes from the list of project items:

LINQ to SQL-Klassen

Visual Studio erstellt eine DBML -Datei und fügt Sie der Projekt Mappe hinzu.Visual Studio creates a .dbml file and adds it to your solution. Dies ist die XML-Mapping-Datei und die zugehörigen Code Dateien.This is the XML mapping file and its related code files.

LINQ to SQL Klassen in Projektmappen-Explorer

Wenn Sie die DBML -Datei auswählen, zeigt Visual Studio die O/R-Designer Oberfläche an, die es Ihnen ermöglicht, das Modell visuell zu erstellen.When you select the .dbml file, Visual Studio shows the O/R Designer surface that enables you to visually create the model. Die folgende Abbildung zeigt den Designer, nachdem die Northwind-Customers und Orders Tabellen aus Server-Explorergezogen wurden.The following illustration shows the designer after the Northwind Customers and Orders tables have been dragged from Server Explorer. Beachten Sie die Beziehung zwischen den Tabellen.Note the relationship between the tables.

LINQ to SQL-Designer

Important

Der O/R-Designer ist ein einfacher objektrelationaler Mapper, da er nur 1:1-Zuordnungsbeziehungen unterstützt.The O/R Designer is a simple object relational mapper because it supports only 1:1 mapping relationships. Das heißt, dass eine Entitätsklasse nur über eine 1:1-Zuordnungsbeziehung zu einer Datenbanktabelle oder -ansicht verfügen kann.In other words, an entity class can have only a 1:1 mapping relationship with a database table or view. Eine komplexe Zuordnung, wie z. b. die Zuordnung einer Entitäts Klasse zu einer verbundenen Tabelle, wird nicht unterstützt. Verwenden Sie die Entity Framework für die komplexe Zuordnung.Complex mapping, such as mapping an entity class to a joined table, is not supported; use the Entity Framework for complex mapping. Darüber hinaus ist der Designer ein unidirektionaler Code-Generator.Additionally, the designer is a one-way code generator. Das bedeutet, dass in der Codedatei nur Änderungen der Designeroberfläche wiedergegeben werden.This means that only changes that you make to the designer surface are reflected in the code file. Manuelle Änderungen an der Codedatei werden im O/R-Designernicht widergespiegelt.Manual changes to the code file are not reflected in the O/R Designer. In der Codedatei vorgenommene manuelle Änderungen werden überschrieben, wenn der Designer gespeichert und Code erneut generiert wird.Any changes that you make manually in the code file are overwritten when the designer is saved and code is regenerated. Weitere Informationen zum Hinzufügen von Benutzercode und Erweitern der vom o/r-Designergenerierten Klassen finden Sie unter Gewusst wie: Erweitern von durch den o/r-Designer generierten Code.For information about how to add user code and extend the classes generated by the O/R Designer, see How to: Extend code generated by the O/R Designer.

Erstellen und Konfigurieren des DataContextCreate and configure the DataContext

Nachdem Sie einem Projekt ein LINQ to SQL Classes -Element hinzugefügt und den O/R-Designergeöffnet haben, stellt die leere Entwurfs Oberfläche einen leeren DataContext bereit, der konfiguriert werden kann.After you add a LINQ to SQL Classes item to a project and open the O/R Designer, the empty design surface represents an empty DataContext ready to be configured. Die Klasse DataContext wird mithilfe der Verbindungsinformationen des ersten Elements konfiguriert, das auf die Entwurfsoberfläche gezogen wird.the DataContext is configured with connection information provided by the first item that is dragged onto the design surface. Deshalb wird die Klasse DataContext mithilfe der Verbindungsinformationen des ersten Elements konfiguriert, das auf der Entwurfsoberfläche abgelegt wird.Therefore, the DataContext is configured by using connection information from the first item dropped onto the design surface. Weitere Informationen zur DataContext-Klasse finden Sie unter DataContext-Methoden (O/R-Designer).For more information about the DataContext class see, DataContext methods (O/R Designer).

Erstellen von Entitäts Klassen, die Datenbanktabellen und-Sichten zugeordnet sindCreate entity classes that map to database tables and views

Sie können Entitäts Klassen erstellen, die Tabellen und Sichten zugeordnet sind, indem Sie Datenbanktabellen und-Sichten von Server-Explorer oder Datenbank-Explorer auf den O/R-Designerziehen.You can create entity classes mapped to tables and views by dragging database tables and views from Server Explorer or Database Explorer onto the O/R Designer. Wie im vorherigen Abschnitt angegeben, wird die Klasse DataContext mithilfe der Verbindungsinformationen des ersten Elements konfiguriert, das auf die Entwurfsoberfläche gezogen wird.As indicated in the previous section, the DataContext is configured with connection information provided by the first item that is dragged onto the design surface. Wenn ein nachfolgendes Element, das eine andere Verbindung verwendet, dem O/R-Designerhinzugefügt wird, können Sie die Verbindung für den DataContextändern.If a subsequent item that uses a different connection is added to the O/R Designer, you can change the connection for the DataContext. Weitere Informationen finden Sie unter Vorgehens Weise: Erstellen von LINQ to SQL Klassen, die Tabellen und Ansichten zugeordnet sind (O/R-Designer).For more information, see How to: Create LINQ to SQL classes mapped to tables and views (O/R Designer).

Erstellen von DataContext-Methoden, die gespeicherte Prozeduren und Funktionen abrufenCreate DataContext methods that call stored procedures and functions

Sie können DataContext Methoden erstellen, die gespeicherte Prozeduren und Funktionen aufzurufen, indem Sie Sie von Server-Explorer oder Datenbank-Explorer auf den O/R-Designerziehen.You can create DataContext methods that call (are mapped to) stored procedures and functions by dragging them from Server Explorer or Database Explorer onto the O/R Designer. Gespeicherte Prozeduren und Funktionen werden dem O/R-Designer als Methoden der DataContexthinzugefügt.Stored procedures and functions are added to the O/R Designer as methods of the DataContext.

Note

Wenn Sie gespeicherte Prozeduren und Funktionen von 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.When you drag stored procedures and functions from Server Explorer or Database Explorer onto the O/R Designer, the return type of the generated DataContext method differs depending on where you drop the item. Weitere Informationen finden Sie unter DataContext-Methoden (O/R-Designer).For more information, see DataContext methods (O/R Designer).

Konfigurieren eines DataContext für die Verwendung gespeicherter Prozeduren zum Speichern von Daten zwischen Entitäts Klassen und einer DatenbankConfigure a DataContext to use stored procedures to save data between entity classes and a database

Wie bereits angemerkt wurde, können DataContext-Methoden erstellt werden, die gespeicherte Prozeduren und Funktionen aufrufen.As stated earlier, you can create DataContext methods that call stored procedures and functions. Außerdem können Sie gespeicherte Prozeduren zuweisen, die für das standardmäßige LINQ to SQL Laufzeitverhalten verwendet werden, das Einfügungen, Aktualisierungen und Löschungen ausführt.Additionally, you can also assign stored procedures that are used for the default LINQ to SQL run-time behavior, which performs inserts, updates, and deletes. Weitere Informationen finden Sie unter Gewusst wie: Zuweisen von gespeicherten Prozeduren zum Durchführen von Aktualisierungen, Einfügungen und Löschungen (O/R-Designer).For more information, see How to: Assign stored procedures to perform updates, inserts, and deletes (O/R Designer).

Vererbung und der O/R-DesignerInheritance and the O/R designer

Wie bei anderen-Objekten können LINQ to SQL-Klassen die Vererbung verwenden und von anderen Klassen abgeleitet werden.Like other objects, LINQ to SQL classes can use inheritance and be derived from other classes. Vererbungsbeziehungen werden in einer Datenbank auf verschiedene Arten erstellt.In a database, inheritance relationships are created in several ways. Der O/R-Designer unterstützt das Konzept der Vererbung einer einzelnen Tabelle, da es häufig in relationalen Systemen implementiert wird.The O/R Designer supports the concept of single-table inheritance as it is often implemented in relational systems. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren der Vererbung mit dem O/R-Designer.For more information, see How to: Configure inheritance by using the O/R Designer.

LINQ to SQL-AbfragenLINQ to SQL queries

Die vom O/R-Designer erstellten Entitäts Klassen sind für die Verwendung mit LINQ (Language-Integrated Query)konzipiert.The entity classes created by the O/R Designer are designed for use with Language-Integrated query (LINQ). Weitere Informationen finden Sie unter Vorgehens Weise: Abfragen von Informationen.For more information, see How to: Query for information.

Den generierten DataContext-und Entitäts Klassen Code in verschiedene Namespaces aufteilenSeparate the generated DataContext and entity class code into different namespaces

Der O/R-Designer stellt die Eigenschaften für den Kontext Namespace und den Entitäts Namespace auf dem DataContextbereit.The O/R Designer provides the Context Namespace and Entity Namespace properties on the DataContext. Mit diesen Eigenschaften wird festgelegt in welchen Namespace der DataContext und der Entitätsklassencode generiert werden.These properties determine what namespace the DataContext and entity class code is generated into. Standardmäßig sind diese Eigenschaften leer, und der DataContext und die Entitätsklassen werden in den Namespace der Anwendung generiert.By default, these properties are empty and the DataContext and entity classes are generated into the application's namespace. Geben Sie einen Wert in die Eigenschaften Context Namespace und/oder Entity Namespace ein, um den Code in einem anderen Namespace als dem der Anwendung zu generieren.To generate the code into a namespace other than the application's namespace, enter a value into the Context Namespace and/or Entity Namespace properties.

Referenz InhaltReference content

Siehe auchSee also