How to: Execute a Finder Method on an Entity
A Finder is a special method that returns entity instances from the back-end business application. For example, for the Customer entity, the Finder method might be a stored procedure or a simple SELECT statement such as the following:
SELECT * FROM Customers
This topic shows you how to execute a Finder method on an entity registered in the Business Data Catalog.
Example
This example shows how to execute a Finder method on the Product entity in the AdventureWorks2000 sample.
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 ExecuteFinder
{
const string yourSSPName ="EnterYourSSPNameHere";
static void Main(string[] args)
{
SetupBDC();
FindAll();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
static void FindAll()
{
NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
FilterCollection fc = prodEntity.GetFinderFilters();
IEntityInstanceEnumerator prodEntityInstanceEnumerator = prodEntity.FindFiltered(fc, 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