DataContext-Methoden (O/R-Designer)
DataContext-Methoden sind (im Kontext von Object Relational Designer (O/R-Designer)) Methoden der DataContext-Klasse, die gespeicherte Prozeduren und Funktionen in einer Datenbank ausführen.
Die DataContext-Klasse ist eine LINQ to SQL-Klasse, die als Verbindung zwischen einer SQL Server-Datenbank und den LINQ to SQL-Entitätsklassen dient, die dieser Datenbank zugeordnet sind. Die DataContext-Klasse enthält die Verbindungszeichenfolgeninformationen und die Methoden zum Herstellen einer Verbindung mit einer Datenbank und zum Ändern der Daten in der Datenbank. Standardmäßig enthält die DataContext-Klasse mehrere Methoden, die Sie aufrufen können, z. B. die SubmitChanges-Methode, die aktualisierte Daten aus LINQ to SQL-Klassen an die Datenbank sendet. Sie können auch zusätzliche DataContext-Methoden erstellen, die gespeicherten Prozeduren und Funktionen zugeordnet werden. Mit anderen Worten: Durch das Aufrufen dieser benutzerdefinierten Methoden wird in der Datenbank die gespeicherte Prozedur oder die Funktion ausgeführt, der die DataContext-Methode zugeordnet ist. Sie können der DataContext-Klasse neue Methoden hinzufügen, wie Sie auch anderen Klassen Methoden hinzufügen würden, um diese zu erweitern. Bei den Erläuterungen von DataContext-Methoden im Kontext von O/R-Designer werden jedoch die DataContext-Methoden besprochen, die gespeicherten Prozeduren und Funktionen zugeordnet werden.
Hinweis
In LINQ to SQL werden gespeicherte Prozeduren und Funktionen auf dieselbe Weise behandelt: sowohl gespeicherte Prozeduren als auch Funktionen werden Entitätsklassen mit demselben StoredProcedureAttribute zugeordnet.Im Kontext von LINQ to SQL entsprechen die DataContext-Methoden, die gespeicherten Prozeduren zugeordnet sind, denen, die Funktionen zugeordnet sind.
Methodenbereich
Die gespeicherten Prozeduren und Funktionen zugeordneten DataContext-Methoden werden im Methodenbereich von O/R-Designer angezeigt. Der Methodenbereich befindet sich neben dem Bereich Entitäten (der Hauptentwurfsoberfläche). Im Methodenbereich werden alle DataContext-Methoden aufgelistet, die Sie mit dem O/R-Designer erstellt haben. Standardmäßig ist der Methodenbereich leer. Ziehen Sie gespeicherte Prozeduren oder Funktionen aus dem Server-Explorer/Datenbank-Explorer auf den O/R-Designer, um DataContext-Methoden zu erstellen und den Methodenbereich zu füllen. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen von DataContext-Methoden, die gespeicherten Prozeduren und Funktionen (O/R-Designer) zugeordnet sind.
Hinweis
Sie können den Methodenbereich öffnen bzw. schließen, indem Sie mit der rechten Maustaste auf den O/R-Designer und dann auf Methodenbereich ausblenden bzw. Methodenbereich anzeigen klicken oder die Tastenkombination STRG+1 verwenden.
Zwei Typen von DataContext-Methoden
DataContext-Methoden sind Methoden, die gespeicherten Prozeduren und Funktionen in der Datenbank zugeordnet werden. DataContext-Methoden können im Methodenbereich des O/R-Designer erstellt und hinzugefügt werden. Es gibt zwei verschiedene Typen von DataContext-Methoden, die sich dadurch unterscheiden, dass von dem einen ein oder mehrere Resultsets zurückgegeben werden und von dem anderen nicht:
DataContext-Methoden, die ein oder mehrere Resultsets zurückgeben:
Erstellen Sie diese Art von DataContext-Methode, wenn eine Anwendung nur gespeicherte Prozeduren und Funktionen in der Datenbank ausführen und die Ergebnisse zurückgeben muss. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen von DataContext-Methoden, die gespeicherten Prozeduren und Funktionen (O/R-Designer) zugeordnet sind, [T:System.Data.Linq.ISingleResult'1] und IMultipleResults.
DataContext-Methoden, die keine Resultsets zurückgeben, wie Einfüge-, Update- und Löschvorgänge für eine bestimmte Entitätsklasse.
Erstellen Sie diese Art von DataContext-Methode, wenn eine Anwendung gespeicherte Prozeduren ausführen muss, statt das LINQ to SQL-Standardverhalten zum Speichern geänderter Daten zwischen einer Entitätsklasse und der Datenbank zu verwenden. Weitere Informationen finden Sie unter Vorgehensweise: Zuweisen von gespeicherten Prozeduren zur Durchführung von Update-, Einfüge- und Löschvorgängen (O/R-Designer).
Rückgabetypen von DataContext-Methoden
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. Durch Ablegen des Elements direkt auf einer vorhandenen Entitätsklasse wird eine DataContext-Methode mit dem Rückgabetyp der Entitätsklasse erstellt. Durch Ablegen von Elementen in einem (beliebigen) leeren O/R-Designer-Bereich wird eine DataContext-Methode erstellt, die einen automatisch generierten Typ zurückgibt. Der automatisch generierte Typ erhält einen Namen, der dem der gespeicherten Prozedur oder Funktion entspricht, und Eigenschaften, die den von der gespeicherten Prozedur oder Funktion zurückgegebenen Feldern entsprechen.
Hinweis
Sie können den Rückgabetyp einer DataContext-Methode ändern, wenn Sie sie dem Methodenbereich hinzugefügt haben.Um den Rückgabetyp einer DataContext-Methode zu überprüfen oder zu ändern, markieren Sie sie, und überprüfen Sie die Eigenschaft Rückgabetyp im Fenster Eigenschaften.Weitere Informationen finden Sie unter Vorgehensweise: Ändern des Rückgabetyps einer DataContext-Methode (O/R-Designer).
Objekte, die von der Datenbank auf die Oberfläche des O/R-Designers gezogen werden, werden nach den Namen der Objekte in der Datenbank automatisch benannt. Wenn dasselbe Objekt mehrfach auf die Oberfläche gezogen wird, wird an das Ende des neuen Namens eine Nummer angehängt, damit die Namen unterschieden werden können. Wenn Namen von Datenbankobjekten Leerzeichen oder in Visual Basic oder C# nicht unterstützte Zeichen enthalten, wird das entsprechende Zeichen durch einen Unterstrich ersetzt.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Anpassen des Einfüge-, Update- und Löschverhaltens von Entitätsklassen
Exemplarische Vorgehensweise: Erstellen von LINQ to SQL-Klassen (O/R-Designer)