How to: Execute a Wildcard Filter on an Entity

The Wildcard filter limits the entity instances returned to those for which

field = value, where value may contain the asterisk (*) wildcard character. You can implement this filter type to present more user friendly filters such as starts with and contains.

This topic shows how to execute a Wildcard filter.

Example

This example shows how to execute a WildcardFinder method on the Product entity in the AdventureWorks2000 sample. The example limits the Entity instances returned to those in the AdventureWorksSample that contain the word bike in the product name.

Prerequisites

  • Ensure a Shared Service Provider is already created.

  • Replace the constant value EnterYourSSPNameHere in the code with the name of your Shared Resource Provider.

  • Ensure the LobSystem and entity names referenced in the example exist in the Business Data Catalog. Use valid names.

Project References

Add the following Project References in your console application code project before running this sample:

  • 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("");
            }
        }
    }
} 

See Also

Concepts

Business Data Catalog: Metadata Model

Other Resources

Browsing the Metadata Repository and Executing Methods and Filters
Building Custom Applications Using the Business Data Catalog