Share via


Procédure : définir des fonctions personnalisées dans le modèle conceptuel (Entity Framework)

Vous pouvez définir une fonction personnalisée dans le modèle conceptuel en ajoutant un élément Function qui contient un élément DefiningExpression au langage CSDL (Conceptual Schema Definition Language) d'un fichier .edmx. Vous pouvez définir n'importe quelle instruction Entity SQL, notamment des instructions paramétrables, dans un élément CommandText.

Pour plus d'informations, consultez DefiningExpression (CSDL) et User-Defined Functions (Entity SQL).

Définition d'une fonction personnalisée dans le modèle conceptuel

La procédure suivante suppose que vous avez ouvert un fichier .edmx dans l'Éditeur XML de Visual Studio. La procédure fournit un plan de haut niveau pour l'ajout d'une fonction personnalisée dans le modèle de stockage. L'exemple qui suit fournit plus d'informations sur les étapes de la procédure.

Pour définir une fonction personnalisée dans le modèle conceptuel

  1. Ajoutez un élément Function à l'élément Schema dans la section Conceptual Model Content du fichier .edmx.

    Dd456812.note(fr-fr,VS.100).gifRemarque :
    Vous devez spécifier un type de retour pour la fonction à l'aide de l'attribut ReturnType.

    Pour plus d'informations, consultez Function Element (SSDL), Schema Element (SSDL) et ReturnType (CSDL).

  2. Pour chaque paramètre que la fonction accepte, ajoutez un élément Parameter à l'élément Function.

    Dd456812.note(fr-fr,VS.100).gifRemarque :
    Les paramètres de fonction ne sont pas signalés par un préfixe tel que @.Ils sont référencés directement par nom dans l'expression Entity SQL qui définit la fonction.Choisissez des noms de paramètre qui ne sont pas les mêmes que d'autres identificateurs que vous devez utiliser dans l'expression Entity SQL.

    Pour plus d'informations, consultez Parameter Element (CSDL).

  3. Ajoutez un élément DefiningExpression au nouvel élément Function.

  4. Définissez une instruction Entity SQL dans l'élément DefiningExpression.

  5. Enregistrez et fermez le fichier .edmx.

Exemple

Voici un exemple d'élément Function, que vous pouvez ajouter à l'élément Schema dans la section Conceptual Model Content d'un fichier .edmx pour définir une fonction personnalisée. L'ajout de cet élément Function au modèle School fournit des fonctionnalités pour déterminer le nombre d'années écoulées depuis l'embauche d'un enseignant.

Pour plus d'informations sur l'exemple de modèle School, consultez Creating the School Sample Database et Generating the School Entity Data Model.

<Function Name="YearsSince" ReturnType="Edm.Int32">
  <Parameter Name="date" Type="Edm.DateTime" />
  <DefiningExpression>
    Year(CurrentDateTime()) - Year(date)
  </DefiningExpression>
</Function>

Une fois qu'une fonction a été définie dans le modèle conceptuel, elle peut être appelée à partir de requêtes Entity SQL dans votre application. Pour plus d'informations sur l'appel de la fonction à partir de requêtes LINQ to Entities, consultez How to: Call Functions Defined in the Conceptual Model.

Voir aussi

Tâches

Procédure : ajouter une requête de définition (Entity Framework)
Procédure : définir des fonctions personnalisées dans le modèle de stockage (Entity Framework)

Concepts

ADO.NET Entity Data Model Designer

Autres ressources

Modification d'un fichier .edmx manuellement (Entity Framework)
ADO.NET Entity Data Model Tools
Calling Functions in LINQ to Entities