Comment : ajouter un descripteur de filtre à une méthode de recherche
Les descripteurs de filtre permettent aux consommateurs du modèle de passer des valeurs aux méthodes avant leur exécution. Pour plus d'informations, consultez Conception d'un modèle de connectivité de données métiers.
Il arrive fréquemment que les utilisateurs dans SharePoint souhaitent extraire des instances d'un type de contenu externe qui correspondent à certains critères. Vous pouvez prendre en charge ce scénario en ajoutant un descripteur de filtre à une méthode de recherche.
Pour ajouter un descripteur de filtre à une méthode de recherche
Dans la fenêtre Détails de méthode BDC, développez le nœud d'une méthode de recherche, développez le nœud Paramètres, puis ajoutez un paramètre d'entrée. Pour plus d'informations, consultez Comment : ajouter un paramètre à une méthode.
Dans la fenêtre Détails de méthode, sélectionnez le descripteur de type du paramètre.
Dans le menu Affichage, cliquez sur Fenêtre Propriétés.
Dans la fenêtre Propriétés, affectez à la propriété Type Name 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 client retournées par la méthode. Pour prendre en charge ce filtre, la propriété Type Name du descripteur de type doit avoir la valeur System.DateTime.
Dans la fenêtre Détails de méthode, développez le nœud Descripteurs de filtre.
Dans la liste déroulante Ajouter un descripteur de filtre, cliquez sur Créer un descripteur de filtre.
Un nouveau descripteur de filtre apparaît sous le nœud Descripteurs de filtre.
Dans le menu Affichage, cliquez sur Fenêtre Propriétés.
Dans la fenêtre Propriétés, sélectionnez la propriété Type.
Dans la liste déroulante qui apparaît pour la propriété Type, sélectionnez le modèle de filtrage de votre choix. Pour plus d'informations sur chaque modèle de filtrage, consultez Types of Filters Supported by the BDC (page éventuellement en anglais).
Par exemple, pour créer un filtre qui utilise une date de commande pour limiter le nombre de commandes client retournées dans une méthode de recherche, sélectionnez Comparaison. Un filtre de comparaison limite les instances retournées par une méthode de recherche à celles respectant une condition spécifique.
Dans la fenêtre Propriétés, sélectionnez la propriété Associated Type Descriptors.
Dans la liste déroulante qui apparaît pour la propriété Associated Type Descriptors, sélectionnez le descripteur de type que vous avez créé précédemment dans cette procédure. Cela lie le filtre au paramètre d'entrée de la méthode de recherche.
Ajoutez du code à la méthode de recherche 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 client avec la date de commande spécifiée.
Notes
Remplacez la valeur du champ ServerName par le nom de votre serveur.
Public Shared Function ReadList(ByVal OrderDateParam As DateTime) As IEnumerable(Of SalesOrderHeader) Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim NoValuePassedIn As DateTime = Convert.ToDateTime("1/1/1900 12:00:00 AM") Dim DefaultDateTime As DateTime = Convert.ToDateTime("2001-09-01 00:00:00.000") ' If the user does not provide a value for the filter. If OrderDateParam = NoValuePassedIn Then ' Use a default date time value. OrderDateParam = DefaultDateTime End If Dim SalesOrderHeader As IEnumerable(Of SalesOrderHeader) = _ From SalesOrderHeaders In dataContext.SalesOrderHeaders _ Where SalesOrderHeaders.OrderDate = OrderDateParam _ Select SalesOrderHeaders Return SalesOrderHeader End Function
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; }
Voir aussi
Tâches
Comment : ajouter une méthode de recherche
Comment : ajouter une méthode de recherche spécifique
Comment : ajouter un paramètre à une méthode
Comment : définir le descripteur de type d'un paramètre