Gewusst wie: Definieren von benutzerdefinierten Funktionen im Speichermodell (Entity Framework)
Sie können im Speichermodell eine benutzerdefinierte Funktion definieren, indem Sie der Datenspeicherschema-Definitionssprache (SSDL) einer EDMX-Datei ein Function-Element hinzufügen, das ein CommandText-Element enthält. Ein CommandText-Element wird im Allgemeinen verwendet, um eine ähnliche Funktionalität wie gespeicherte Prozeduren bereitzustellen. Die gespeicherte Prozedur wird dabei aber nicht in der Datenbank definiert, sondern in der EDMX-Datei. Sie können jede beliebige SQL-Anweisung, einschließlich parametrisierter Anweisungen, in einem CommandText-Element definieren.
Hinweis: |
---|
Die in dem folgenden Verfahren beschriebenen Änderungen am SSDL-Abschnitt einer EDMX-Datei werden überschrieben, wenn Sie das Modell mithilfe des Modellaktualisierungs-Assistenten aktualisieren. |
Definieren einer benutzerdefinierten Funktion im Speichermodell
Das folgende Verfahren setzt voraus, dass Sie im XML-Editor in Visual Studio eine EDMX-Datei geöffnet haben. Das Verfahren bietet einen Überblick über das Hinzufügen einer benutzerdefinierten Funktion im Speichermodell. Das folgende Beispiel enthält weitere Details zu den Schritten im Verfahren.
So definieren Sie eine benutzerdefinierte Funktion im Speichermodell
Fügen Sie dem Schema-Element im Abschnitt mit dem Inhalt des Speichermodells der EDMX-Datei ein Function-Element hinzu.
Weitere Informationen finden Sie unter Function Element (SSDL) und Schema Element (SSDL).
Fügen Sie dem neuen Function-Element ein CommandText-Element hinzu.
Definieren Sie eine SQL-Anweisung im CommandText-Element.
Die Anweisung kann eine parametrisierte Anweisung sein.
Fügen Sie dem Function-Element jeweils ein Parameter-Element für jeden Parameter in der SQL-Abfrage hinzu. Legen Sie die Attribute Name, Mode und Type jedes Parameter-Elements fest.
Speichern und schließen Sie die EDMX-Datei.
Öffnen Sie die EDMX-Datei im ADO.NET Entity Data Model Designer (Entity Designer).
Im Modellbrowser-Fenster wird jetzt die neu hinzugefügte Funktion als gespeicherte Prozedur angezeigt.
Erstellen Sie einen FunctionImport für die gespeicherte Prozedur. Weitere Informationen finden Sie unter Gewusst wie: Importieren einer gespeicherten Prozedur (Entity Data Model-Tools).
Beispiel
Im Folgenden sehen Sie ein Beispiel für ein Function-Element, das dem Schema-Element im Abschnitt mit dem Inhalt des Speichermodells einer EDMX-Datei hinzugefügt werden kann, um eine benutzerdefinierte Funktion zu definieren. Wird dieses Function-Element dem Modell "School" hinzugefügt, dann steht die Funktionalität bereit, mit der die Bürozuweisung einer angegebenen Lehrkraft aktualisiert werden kann. Weitere Informationen zum Beispielmodell "School" finden Sie unter Quickstart (Entity Framework).
<Function Name="UpdateOfficeAssignment" IsComposable="false">
<CommandText>
UPDATE OfficeAssignment
SET Location = @location
WHERE InstructorID = @id;
</CommandText>
<Parameter Name="location"
Mode="In"
Type="nvarchar"/>
<Parameter Name="id"
Mode="In"
Type="int"/>
</Function>
Um diese Funktion im ObjectContext verfügbar zu machen, müssen Sie im konzeptionellen Modell einen entsprechenden Funktionsimport erstellen. Weitere Informationen finden Sie unter Gewusst wie: Importieren einer gespeicherten Prozedur (Entity Data Model-Tools).
Siehe auch
Aufgaben
Gewusst wie: Hinzufügen einer definierenden Abfrage (Entity Framework)
Konzepte
ADO.NET Entity Data Model-Designer
Weitere Ressourcen
Manuelle Bearbeitung einer EDMX-Datei (Entity Framework)
ADO.NET Entity Data Model-Tools