Modelldefinierte Funktion
Eine vom Modell definierte Funktion ist eine Funktion, die in einem konzeptionellen Modell definiert wird. Der Text einer vom Modell definierten Funktion wird in Entity SQL ausgedrückt, sodass die Funktion unabhängig von in der Datenquelle unterstützten Regeln oder Sprachen ausgedrückt werden kann.
Eine Definition für eine modelldefinierte Funktion enthält die folgenden Informationen:
Ein Funktionsname. (Erforderlich)
Den Typ des Rückgabewerts. (Optional)
Hinweis
Wenn kein Rückgabetyp angegeben wird, ist der Rückgabewert leer.
Parameterinformationen. (Optional)
Ein Entity SQL-Ausdruck, der den Körper der Funktion definiert.
Beachten Sie, dass modelldefinierte Funktionen keine Ausgabeparameter unterstützen. Diese Einschränkung ist vorhanden, damit modelldefinierte Funktionen verfasst werden können.
Beispiel
Die unten stehende Abbildung zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book
, Publisher
und Author
.
Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL) mit der Bezeichnung „konzeptionelle Schemadefinitionssprache“ (CSDL), um konzeptionelle Modelle zu definieren. Die folgende CSDL definiert eine Funktion im konzeptionellen Modell, das die Anzahl der Jahre zurückgibt, seit eine Instanz eines Book
(in der Abbildung oben) 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>