fonction définie par modèle

Une fonction définie par modèle est une fonction qui est définie dans un modèle conceptuel. Le corps d’une fonction définie par modèle est exprimé en Entity SQL, ce qui permet d’exprimer la fonction 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 :

  • Un nom de fonction. (Obligatoire)

  • Type de la valeur de retour. (facultatif)

    Notes

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

  • Informations sur les paramètres. (facultatif)

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

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

Exemple

Le diagramme suivant montre un modèle conceptuel avec trois types d'entités : Book, Publisher et Author.

Screenshot that shows a model with published date.

ADO.NET Entity Framework utilise un langage spécifique à un domaine (DSL), appelé CSDL (Conceptual Schema Definition Language), pour définir des modèles conceptuels. Le CSDL suivant définit une fonction dans le modèle conceptuel qui retourne le nombre d'années écoulées depuis la publication d'une instance de Book (dans le diagramme ci-dessus).

<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