Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine modelldefinierte Funktion ist eine Funktion, die in einem konzeptionellen Modell definiert ist. Der Textkörper einer modelldefinierten Funktion wird in Entity SQL ausgedrückt, wodurch die Funktion unabhängig von Regeln oder Sprachen ausgedrückt werden kann, die in der Datenquelle unterstützt werden.
Eine Definition für eine modelldefinierte Funktion enthält die folgenden Informationen:
Ein Funktionsname. (Erforderlich)
Der Typ des Rückgabewerts. (Optional)
Hinweis
Wenn kein Rückgabetyp angegeben ist, ist der Rückgabewert ungültig.
Parameterinformationen. (Optional)
Ein Entitäts-SQL-Ausdruck , der den Textkörper der Funktion definiert.
Beachten Sie, dass modelldefinierte Funktionen keine Ausgabeparameter unterstützen. Diese Einschränkung ist eingerichtet, sodass modelldefinierte Funktionen zusammengesetzt werden können.
Beispiel
Das folgende Diagramm zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book
, , Publisher
und Author
.
Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL), die als konzeptuelle Schemadefinitionssprache (CSDL) bezeichnet wird, um konzeptionelle Modelle zu definieren. Die folgende CSDL definiert eine Funktion im konzeptionellen Modell, die die Anzahl von Jahren zurückgibt, seit eine Instanz eines Book
(im obigen Diagramm) veröffentlicht wurde.
<Function Name="GetYearsInPrint" ReturnType="Edm.Int32" >
<Parameter Name="book" Type="BooksModel.Book" />
<DefiningExpression>
Year(CurrentDateTime()) - Year(cast(book.PublishedDate as DateTime))
</DefiningExpression>
</Function>