Share via


Procedimiento para ejecutar un filtro con caracteres comodín en una entidad

El filtro Comodín limita las instancias de Entity devueltas a las instancias en las que

campo = valor, donde valor puede contener el carácter comodín asterisco (*). Puede implementar este tipo de filtro para presentar filtros más fáciles de usar, como comienza por y contiene.

En este tema se muestra cómo ejecutar un filtro Comodín.

Ejemplo

En este ejemplo se muestra cómo ejecutar un método WildcardFinder en la entidad Product del ejemplo AdventureWorks2000. El ejemplo limita las instancias de Entity devueltas a las de AdventureWorksSample que contienen la palabra bike en el nombre de producto.

Requisitos previos

  • Asegúrese de que el proveedor de servicios compartidos ya está creado.

  • Reemplace el valor constante EnterYourSSPNameHere en el código con el nombre del proveedor de recursos compartidos.

  • Asegúrese de que LobSystem y los nombres de entidad a los que se hace referencia en el ejemplo existan en el Catálogo de datos profesionales. Use nombres válidos.

Referencias del proyecto

Antes de ejecutar este ejemplo, agregue las siguientes referencias de proyecto al proyecto de código de aplicación de consola:

  • Microsoft.SharePoint

  • Microsoft.SharePoint.Portal

  • Microsoft.Office.Server

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Microsoft.Office.Server.ApplicationRegistry.MetadataModel;
using Microsoft.Office.Server.ApplicationRegistry.Runtime;
using Microsoft.Office.Server.ApplicationRegistry.SystemSpecific;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;

namespace Microsoft.SDK.SharePointServer.Samples
{
    class ExecuteWildcardFilter
    {
        const string yourSSPName ="EnterYourSSPNameHere";

        static void Main(string[] args)
        {
            SetupBDC();
            FindFiltered();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }
        static void FindFiltered()
        {
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
            LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
            Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
            FilterCollection fc = prodEntity.GetFinderFilters();
            FilterCollection newfc = new FilterCollection();
            for (int i = 0; i < fc.Count; i++)
            {
                if (fc[i].GetType().FullName == "Microsoft.Office.Server.ApplicationRegistry.Runtime.WildcardFilter")
                {
                    if (string.IsNullOrEmpty("Name") || (0 == string.Compare(fc[i].Name, "Name")))
                    {
                        newfc.Add(fc[i]);
                    }
                }
            }
            ((WildcardFilter)newfc[0]).Value = "%bike%";
            IEntityInstanceEnumerator prodEntityInstanceEnumerator = prodEntity.FindFiltered(newfc, AdvWorksIns);
            while (prodEntityInstanceEnumerator.MoveNext())
            {
                IEntityInstance IE = prodEntityInstanceEnumerator.Current;
                foreach (Field f in prodEntity.GetFinderView().Fields)
                    Console.Write(IE[f]);
                Console.WriteLine("");
            }
        }
    }
} 

Vea también

Otros recursos

Catálogo de datos profesionales: modelo de metadatos
Exploración del repositorio de metadatos y ejecución de métodos y filtros
Creación de aplicaciones personalizadas mediante el Catálogo de datos profesionales