Delen via


modelgedefinieerde functie

Een modelgedefinieerde functie is een functie die is gedefinieerd in een conceptueel model. De hoofdtekst van een modelgedefinieerde functie wordt uitgedrukt in Entity SQL, waarmee de functie onafhankelijk van regels of talen in de gegevensbron kan worden uitgedrukt.

Een definitie voor een modelgedefinieerde functie bevat de volgende informatie:

  • Een functienaam. (Verplicht)

  • Het type van de retourwaarde. (Optioneel)

    Notitie

    Als er geen retourtype is opgegeven, is de retourwaarde ongeldig.

  • Parameterinformatie. (Optioneel)

  • Een Entiteit SQL-expressie die de hoofdtekst van de functie definieert.

Houd er rekening mee dat modelgedefinieerde functies geen ondersteuning bieden voor uitvoerparameters. Deze beperking is ingesteld, zodat modelgedefinieerde functies kunnen worden samengesteld.

Opmerking

In het onderstaande diagram ziet u een conceptueel model met drie entiteitstypen: Book, Publisheren Author.

Screenshot that shows a model with published date.

De ADO.NET Entity Framework maakt gebruik van een domeinspecifieke taal (DSL) genaamd conceptuele schemadefinitietaal (CSDL) om conceptuele modellen te definiƫren. De volgende CSDL definieert een functie in het conceptuele model dat de aantallen jaren retourneert sinds een instantie van een Book (in het bovenstaande diagram) is gepubliceerd.

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

Zie ook