Gewusst wie: Definieren von benutzerdefinierten Funktionen im konzeptionellen Modell (Entity Framework)
Sie können im konzeptionellen Modell eine benutzerdefinierte Funktion definieren, indem Sie der konzeptionellen Schemadefinitionssprache (CSDL) einer EDMX-Datei ein Function-Element hinzufügen, das ein DefiningExpression-Element enthält. Sie können eine beliebige Entity SQL-Anweisung einschließlich parametrisierter Anweisungen in einem CommandText-Element definieren.
Weitere Informationen finden Sie unter DefiningExpression (CSDL) und User-Defined Functions (Entity SQL).
Definieren einer benutzerdefinierten Funktion im konzeptionellen Modell
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 konzeptionellen Modell
Fügen Sie dem Schema-Element im Abschnitt mit dem Inhalt des konzeptionellen Modells der EDMX-Datei ein Function-Element hinzu.
Hinweis: Sie müssen mit dem ReturnType-Attribut einen Rückgabetyp für die Funktion angeben. Weitere Informationen finden Sie unter Function Element (SSDL), Schema Element (SSDL) und ReturnType (CSDL).
Fügen Sie dem Function-Element ein Parameter-Element für jeden von der Funktion akzeptierten Parameter hinzu.
Hinweis: Funktionsparameter werden nicht durch ein Präfix wie @ bezeichnet.Sie werden direkt anhand des Namens im Entity SQL-Ausdruck, der die Funktion definiert, referenziert.Wählen Sie Parameternamen aus, die sich von den anderen im Entity SQL-Ausdruck benötigten Bezeichnern unterscheiden. Weitere Informationen finden Sie unter Parameter Element (CSDL).
Fügen Sie dem neuen Function-Element ein DefiningExpression-Element hinzu.
Definieren Sie eine Entity SQL-Anweisung im DefiningExpression-Element.
Speichern und schließen Sie die EDMX-Datei.
Beispiel
Im Folgenden sehen Sie ein Beispiel für ein Function-Element, das dem Schema-Element im Abschnitt mit dem Inhalt des konzeptionellen Modells einer EDMX-Datei hinzugefügt werden kann, um eine benutzerdefinierte Funktion zu definieren. Wenn Sie dieses Function-Element dem Modell "School" hinzufügen, erhalten Sie eine Funktion, mit der die Anzahl von Jahren seit der Einstellung einer Lehrkraft ermittelt werden kann.
Weitere Informationen zum Beispielmodell "School" finden Sie unter Creating the School Sample Database und Generating the School Entity Data Model.
<Function Name="YearsSince" ReturnType="Edm.Int32">
<Parameter Name="date" Type="Edm.DateTime" />
<DefiningExpression>
Year(CurrentDateTime()) - Year(date)
</DefiningExpression>
</Function>
Nachdem eine Funktion im konzeptionellen Modell definiert wurde, kann sie in Entity SQL-Abfragen in der Anwendung aufgerufen werden. Informationen zum Aufrufen der Funktion in LINQ to Entities-Abfragen finden Sie unter How to: Call Functions Defined in the Conceptual Model.
Siehe auch
Aufgaben
Gewusst wie: Hinzufügen einer definierenden Abfrage (Entity Framework)
Gewusst wie: Definieren von benutzerdefinierten Funktionen im Speichermodell (Entity Framework)
Konzepte
ADO.NET Entity Data Model-Designer
Weitere Ressourcen
Manuelle Bearbeitung einer EDMX-Datei (Entity Framework)
ADO.NET Entity Data Model-Tools
Calling Functions in LINQ to Entities