Sdílet prostřednictvím


model-defined function

Modelem definovaná funkce je funkce definovaná v konceptuálním modelu. Tělo modelem definované funkce je vyjádřeno v Entity SQL, což umožňuje vyjádřit funkci nezávisle na pravidlech nebo jazycích podporovaných ve zdroji dat.

Definice modelem definované funkce obsahuje následující informace:

  • Název funkce. (Povinné)

  • Typ návratové hodnoty. (Nepovinné)

    Poznámka:

    Pokud není zadán žádný návratový typ, návratová hodnota je void.

  • Informace o parametrech (Nepovinné)

  • Výraz Entity SQL , který definuje tělo funkce.

Všimněte si, že modelem definované funkce nepodporují výstupní parametry. Toto omezení se používá, aby se modelem definované funkce mohly skládat.

Příklad

Následující diagram znázorňuje koncepční model se třemi typy entit: Book, Publishera Author.

Screenshot that shows a model with published date.

ADO.NET Entity Framework používá jazyk specifický pro doménu (DSL) označovaný jako jazyk CSDL (Conceptual Schema Definition Language) k definování konceptuálních modelů. Následující CSDL definuje funkci v koncepčním modelu, která vrací počet roků od publikování instance objektu Book (v diagramu výše).

<Function Name="GetYearsInPrint" ReturnType="Edm.Int32" >
      <Parameter Name="book" Type="BooksModel.Book" />
      <DefiningExpression>
        Year(CurrentDateTime()) - Year(cast(book.PublishedDate as DateTime))
      </DefiningExpression>
    </Function>

Viz také