Partager via


Ajouter un descripteur de filtre à une méthode de recherche

Les descripteurs de filtre permettent aux consommateurs du modèle de passer des valeurs à des méthodes avant leur exécution. Pour plus d’informations, consultez Concevoir un modèle Business Data Connectivity.

Le fait que les utilisateurs de SharePoint souhaitent récupérer des instances d’un type de contenu externe qui correspondent à certains critères est un scénario courant. Vous pouvez prendre en charge ce scénario en ajoutant un descripteur de filtre à une méthode Finder.

Ajouter un descripteur de filtre à une méthode Finder

  1. Dans la fenêtre Détails de la méthode BDC, développez le nœud d’une méthode Finder, développez le nœud Paramètres, puis ajoutez un paramètre d’entrée. Pour plus d’informations, consultez Guide pratique : ajouter un paramètre à une méthode.

  2. Dans la fenêtre Détails de méthode, choisissez le descripteur de type du paramètre.

  3. Dans la barre de menu, choisissez Affichage>Fenêtre Propriétés.

  4. Dans la fenêtre Propriétés, définissez la propriété Nom du type sur un type de données approprié pour le filtre.

    Par exemple, un filtre peut utiliser une date de commande pour limiter le nombre de commandes retournées par la méthode. Pour prendre en charge ce filtre, la propriété Nom du type du descripteur de type doit être définie sur System.DateTime.

  5. Dans la fenêtre Détails de la méthode, développez le nœud Descripteurs de filtre.

  6. Dans Ajouter une liste de descripteurs de filtre, choisissez Créer un descripteur de filtre.

    Un nouveau descripteur de filtre apparaît sous le nœud Descripteurs de filtre.

  7. Dans la barre de menu, choisissez Affichage>Fenêtre Propriétés.

  8. Dans la fenêtre Propriétés, choisissez la propriété Type.

  9. Dans la liste qui s’affiche pour la propriété Type, choisissez le modèle de filtrage souhaité.

    Par exemple, pour créer un filtre qui utilise une date de commande pour limiter le nombre de commandes retournées dans une méthode Finder, choisissez Comparaison. Un filtre de comparaison garantit qu’une méthode Finder retourne uniquement les instances qui répondent à une condition spécifique. Pour plus d’informations sur chaque modèle de filtrage, consultez Types de filtres pris en charge par le BDC.

  10. Dans la fenêtre Propriétés, choisissez la propriété Descripteurs de type associé.

  11. Dans la liste qui s’affiche pour la propriété Descripteurs de type associé, choisissez le descripteur de type que vous avez créé précédemment dans cette procédure. Cela relie le filtre au paramètre d’entrée de la méthode Finder.

  12. Ajoutez du code à la méthode Finder qui retourne des données. Vous pouvez utiliser le paramètre d’entrée comme condition dans une requête select.

    L’exemple suivant retourne les commandes qui ont la date de commande spécifiée.

    Notes

    Remplacez la valeur du champ ServerName par le nom de votre serveur.

    public static IEnumerable<SalesOrderHeader> ReadList(DateTime OrderDateParam)
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
    
        DateTime NoValuePassedIn = Convert.ToDateTime("1/1/1900 12:00:00 AM");
        DateTime DefaultDateTime = Convert.ToDateTime("2001-09-01 00:00:00.000");
    
        // If the user does not provide a value for the filter.
        if (OrderDateParam == NoValuePassedIn)
        {
            // Use a default date time value.
            OrderDateParam = DefaultDateTime;
        }
    
        IEnumerable<SalesOrderHeader> SalesOrderHeader =
            from salesOrderHeaders in dataContext.SalesOrderHeaders
            where salesOrderHeaders.OrderDate == OrderDateParam
            select salesOrderHeaders;
        return SalesOrderHeader;
    }