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, Publisheri Author.

Screenshot that shows a model with published date.

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>

Zobacz też