Partager via


fonction définie par modèle

Une fonction définie par modèle est une fonction définie dans un modèle conceptuel. Le corps d’une fonction définie par modèle est exprimé dans Entity SQL, ce qui permet à la fonction d’être exprimée indépendamment des règles ou des langages pris en charge dans la source de données.

Une définition pour une fonction définie par modèle contient les informations suivantes :

  • Nom d’une fonction. (Obligatoire)

  • Type de la valeur de retour. (facultatif)

    Remarque

    Si aucun type de retour n’est spécifié, la valeur de retour est void.

  • Informations sur les paramètres. (facultatif)

  • Expression Entity SQL qui définit le corps de la fonction.

Notez que les fonctions définies par le modèle ne prennent pas en charge les paramètres de sortie. Cette restriction est en place afin que les fonctions définies par le modèle puissent être composées.

Exemple :

Le diagramme ci-dessous montre un modèle conceptuel avec trois types d’entités : Book, Publisheret Author.

Capture d’écran montrant un modèle avec une date de publication.

Le ADO.NET Entity Framework utilise un langage spécifique au domaine (DSL) appelé langage de définition de schéma conceptuel (CSDL) pour définir des modèles conceptuels. Le langage CSDL suivant définit une fonction dans le modèle conceptuel qui retourne les nombres d’années depuis qu’une instance d’un Book (dans le diagramme ci-dessus) a été publiée.

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

Voir aussi