Partager via


Procédure : exécuter une méthode sur une entité

Les entités contiennent des méthodes. Pour exécuter les méthodes qui sont disponibles sur une entité, l'objet Entity fournit la méthode Execute.

Les deux exemples de code dans cette rubrique illustrent l'utilisation de la méthode Execute pour effectuer une exécution de méthode brute. L'exemple de méthode ExecuteEntityOverrideArgs remplace les valeurs par défaut des paramètres par des valeurs différentes avant d'exécuter l'appel de méthode.

Exemple

Cet exemple illustre l'utilisation de la méthode Execute pour effectuer une exécution de méthode brute. Cette méthode ExecuteEntityOverrideArgs dans l'exemple illustre également comment substituer les valeurs par défaut des paramètres par des valeurs différentes avant l'exécution.

Notes

Bien que cet exemple exécute une méthode Finder, vous n'utiliserez généralement pas Entity.Execute pour exécuter des méthodes Finder. Pour exécuter les méthodes de type Finder et Filter, vous devez utiliser les méthodes FindFiltered et FindSpecific.

Conditions préalables requises

  • 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.

  • Assurez-vous 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.

Références de projet

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 ExecuteEntity
    {
        const string yourSSPName ="EnterYourSSPNameHere";

        static void Main(string[] args)
        {
            SetupBDC();
            ExecuteEntity();
            ExecuteEntityOverrideArgs();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }

        static void ExecuteEntity()
        {
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
            LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
            Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
            MethodInstance methInst = prodEntity.GetFinderMethodInstance();
            IEntityInstanceEnumerator prodEntityInstanceEnumerator =
                (IEntityInstanceEnumerator)prodEntity.Execute(methInst,
                AdvWorksIns);
            while (prodEntityInstanceEnumerator.MoveNext())
            {
                IEntityInstance IE = prodEntityInstanceEnumerator.Current;
                foreach (Field f in prodEntity.GetFinderView().Fields)
                    Console.Write(IE[f]);
                Console.WriteLine("");
            }
        }
        static void ExecuteEntityOverrideArgs()
        {
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
            LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
            Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
            MethodInstance methInst = prodEntity.GetFinderMethodInstance();
            Object[] args = methInst.GetMethod().CreateDefaultParameterInstances(methInst);
            //Min ProductID
            args[0] = 1;
            //Max Product ID
            args[1] = 10;
            IEntityInstanceEnumerator prodEntityInstanceEnumerator =
                (IEntityInstanceEnumerator)
                prodEntity.Execute(methInst, AdvWorksIns, ref args);
            while (prodEntityInstanceEnumerator.MoveNext())
            {
                IEntityInstance IE = prodEntityInstanceEnumerator.Current;
                foreach (Field f in prodEntity.GetFinderView().Fields)
                    Console.Write(IE[f]);
                Console.WriteLine("");
            }
        }  
    }
} 

Voir aussi

Autres ressources

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