Partager via


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

Vous pouvez définir une fonction personnalisée dans le modèle de stockage en ajoutant un élément Function qui contient un élément CommandText au langage SSDL (Storage Schema Definition Language) d'un fichier .edmx. Un élément CommandText est généralement utilisé pour fournir des fonctionnalités semblables à celles fournies par les procédures stockées. Toutefois, la procédure stockée est définie dans le fichier .edmx, et non dans la base de données. Vous pouvez définir n'importe quelle instruction SQL, notamment des instructions paramétrables, dans un élément CommandText.

Dd296754.note(fr-fr,VS.100).gifRemarque :
Les modifications apportées à la section SSDL d'un fichier .edmx, comme suggéré dans la procédure suivante, sont remplacées si vous utilisez l'Assistant Mise à jour du modèle pour mettre à jour votre modèle.

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

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 de stockage

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

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

  2. Ajoutez un élément CommandText au nouvel élément Function.

  3. Définissez une instruction SQL dans l'élément CommandText.

    L'instruction peut être une instruction paramétrée.

  4. Pour chaque paramètre dans la requête SQL, ajoutez un élément Parameter à l'élément Function. Définissez les attributs Name, Mode et Type de chaque élément Parameter.

  5. Enregistrez et fermez le fichier .edmx.

  6. Ouvrez le fichier .edmx dans ADO.NET Entity Data Model Designer (Concepteur d'entités).

    La nouvelle fonction ajoutée s'affiche à présent comme procédure stockée dans la fenêtre Explorateur de modèles.

  7. Créez un élément FunctionImport pour la procédure stockée. Pour plus d'informations, consultez Procédure : importer une procédure stockée (Entity Data Model Tools).

Exemple

Voici un exemple d'élément Function, que vous pouvez ajouter à l'élément Schema dans la section Storage Model Content d'un fichier .edmx pour définir une fonction personnalisée. L'ajout de l'élément Function au modèle School fournit la fonctionnalité de mise à jour de l'affectation de bureau d'un formateur spécifié. Pour plus d'informations sur l'exemple de modèle School, consultez Quickstart (Entity Framework).

<Function Name="UpdateOfficeAssignment" IsComposable="false">
  <CommandText>
    UPDATE OfficeAssignment
    SET Location = @location
    WHERE InstructorID = @id;
  </CommandText>
  <Parameter Name="location"
             Mode="In"
             Type="nvarchar"/>
  <Parameter Name="id"
             Mode="In"
             Type="int"/>
</Function>

Pour rendre cette fonction disponible sur le ObjectContext, vous devez créer une importation de fonction correspondante dans le modèle conceptuel. Pour plus d'informations, consultez Procédure : importer une procédure stockée (Entity Data Model Tools).

Voir aussi

Tâches

Procédure : ajouter une requête de définition (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