Procédure : exécuter une méthode Finder sur une entité
Un Finder est une méthode spéciale qui retourne des instances tity depuis l'application métier principale. Par exemple, pour l'entité Client, la méthode Finder peut être une procédure stockée ou une simple instruction SELECT comme la suivante :
SELECT * FROM Customers
Cette rubrique vous montre comment exécuter une méthode Finder sur une entité inscrite dans le catalogue de données métiers.
Cet exemple montre comment exécuter une méthode Finder sur l'entité du produit dans l'exemple AdventureWorks2000.
Vérifiez qu'un fournisseur de services partagés est déjà créé.
Remplacez la valeur de constante EnterYourSSPNameHere dans le code par le nom de votre fournisseur de ressources partagées.
Vérifiez que le LobSystem et les noms d'entité référencés dans l'exemple existent dans le catalogue de données métiers. Utilisez des noms valides.
Ajoutez les références de projet suivantes dans votre projet de code d'application console avant d'exécuter cet exemple :
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("");
}
}
}
}
Catalogue de données métiers : modèle de métadonnées
Navigation dans le référentiel de métadonnées et exécution de méthodes et de filtres
Création d'applications personnalisées à l'aide du catalogue de données métiers