Dela via


modelldefinierad funktion

En modelldefinierad funktion är en funktion som definieras i en konceptmodell. Brödtexten för en modelldefinierad funktion uttrycks i Entitets-SQL, vilket gör att funktionen kan uttryckas oberoende av regler eller språk som stöds i datakällan.

En definition för en modelldefinierad funktion innehåller följande information:

  • Ett funktionsnamn. (Krävs)

  • Typ av returvärde. (Valfritt)

    Kommentar

    Om ingen returtyp har angetts ogiltigförklaras returvärdet.

  • Parameterinformation. (Valfritt)

  • Ett entitets-SQL-uttryck som definierar funktionens brödtext.

Observera att modelldefinierade funktioner inte stöder utdataparametrar. Den här begränsningen är på plats så att modelldefinierade funktioner kan bestå.

Exempel

Diagrammet nedan visar en konceptmodell med tre entitetstyper: Book, Publisheroch Author.

Screenshot that shows a model with published date.

ADO.NET Entity Framework använder ett domänspecifikt språk (DSL) som kallas CSDL (Conceptual Schema Definition Language) för att definiera konceptuella modeller. Följande CSDL definierar en funktion i den konceptuella modellen som returnerar antalet år sedan en instans av en Book (i diagrammet ovan) publicerades.

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

Se även