funkcja zdefiniowana przez model
Funkcja zdefiniowana przez model to funkcja zdefiniowana w modelu koncepcyjnym. Treść funkcji zdefiniowanej przez model jest wyrażana w języku Entity SQL, co umożliwia wyrażanie funkcji niezależnie od reguł lub języków obsługiwanych w źródle danych.
Definicja funkcji zdefiniowanej przez model zawiera następujące informacje:
Nazwa funkcji. (Wymagane)
Typ wartości zwracanej. (Opcjonalne)
Uwaga
Jeśli nie określono żadnego typu zwracanego, zwracana wartość jest pusta.
Informacje o parametrach. (Opcjonalne)
Wyrażenie Entity SQL definiujące treść funkcji.
Należy pamiętać, że funkcje zdefiniowane przez model nie obsługują parametrów wyjściowych. To ograniczenie ma miejsce, aby można było tworzyć funkcje zdefiniowane przez model.
Przykład
Na poniższym diagramie przedstawiono model koncepcyjny z trzema typami jednostek: Book
, Publisher
i Author
.
ADO.NET Entity Framework używa języka specyficznego dla domeny (DSL) nazywanego koncepcyjnym językiem definicji schematu (CSDL) do definiowania modeli koncepcyjnych. Poniższy plik CSDL definiuje funkcję w modelu koncepcyjnym, która zwraca liczbę lat od momentu opublikowania wystąpienia Book
elementu (na powyższym diagramie).
<Function Name="GetYearsInPrint" ReturnType="Edm.Int32" >
<Parameter Name="book" Type="BooksModel.Book" />
<DefiningExpression>
Year(CurrentDateTime()) - Year(cast(book.PublishedDate as DateTime))
</DefiningExpression>
</Function>