Partager via


Extrait de code : Exécuter l’instance de méthode IdEnumerator d’un type de contenu externe

Dernière modification : jeudi 6 mai 2010

S’applique à : SharePoint Server 2010

Dans cet article
Description
Conditions préalables requises
Pour utiliser cet exemple

Description

L’exemple de code suivant montre comment exécuter par programme une instance de méthode IdEnumerator d’un type de contenu externe à l’aide du modèle objet Runtime BDC sur le serveur.

Conditions préalables requises

  • Microsoft SharePoint Server 2010 ou Microsoft SharePoint Foundation 2010 sur le serveur.

  • Microsoft .NET Framework 3.5 et Microsoft Visual Studio sur l’ordinateur client.

Pour utiliser cet exemple

  1. Démarrez Visual Studio et créez un projet d’application console C#. Sélectionnez .NET Framework 3.5 lors de la création du projet.

  2. Dans le menu Affichage, cliquez sur Pages des propriétés pour afficher les propriétés du projet.

  3. Sous l’onglet Générer, pour Plateforme cible, sélectionnez Any CPU.

  4. Fermez la fenêtre de propriétés du projet.

  5. Dans l’Explorateur de solutions, sous Références, supprimez toutes les références du projet à l’exception de System et System.Core.

  6. Ajoutez les références suivantes au projet :

    1. Microsoft.BusinessData

    2. Microsoft.SharePoint

    3. System.Web

  7. Remplacez le code dans Program.cs par le code fourni à la fin de cette procédure.

  8. Remplacez la valeur SiteURL par une URL de site valide.

  9. Cet exemple est basé sur l’exemple de base de données AdventureWorks et le type de contenu externe Customer. Si votre système externe est différent, modifiez le nom du type de contenu externe et LobSystem en conséquence dans le code.

  10. Enregistrez le projet.

  11. Compilez et exécutez le projet.

using System;
using Microsoft.SharePoint.BusinessData.SharedService;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.BusinessData.MetadataModel.Collections;
using Microsoft.BusinessData.Runtime;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint;
 
namespace SDKSamples
{
    class Methods
    {
 
        static void Main(string[] args)
        {
            EnumerateCustomerIds();
        }
 
        // IdEnumerator.
        public static void EnumerateCustomerIds()
        {
            string SiteURL = "<SiteUrl>";
           
            using (SPSite site = new SPSite(SiteURL))
            {
                using (new Microsoft.SharePoint.SPServiceContextScope(
                   SPServiceContext.GetContext(site)))
                {
                    BdcService service =
                        SPFarm.Local.Services.GetValue<BdcService>(String.Empty);
                    IMetadataCatalog catalog =
                        service.GetDatabaseBackedMetadataCatalog(
                        SPServiceContext.Current);
 
                    // Get customer Entity for Sample AdventureWorks Model which supplies the IdEnumerator Method.
                    IEntity customerEntity = catalog.GetEntity("AdventureWorks", "Customer");
 
                    // Get the default filter values.
                    IMethodInstance idEnumeratorMethodInstance =
                        customerEntity.GetMethodInstance(
                        "Id Enumerator", MethodInstanceType.IdEnumerator);
                    IFilterCollection defaultFilters =
                        idEnumeratorMethodInstance.GetFilters();
 
                    // Set the limit filter value to 10.
                    // This method instance has only one filter, which is the limit filter.
                    IUserInputFilter limitFilter = (IUserInputFilter)defaultFilters[0];
                    limitFilter[0] = 10;
 
                    // Get LOB System instance.
                    ILobSystemInstance lobSystemInstance =
                        customerEntity.GetLobSystem().
                        GetLobSystemInstances()["AdventureWorks"];
 
                    IEntityInstanceEnumerator customerIdentities = null;
 
                    try
                    {
                        // List customer identities with default filter values.
                        customerIdentities =
                            customerEntity.EnumerateIdentities(
                            defaultFilters, lobSystemInstance);
 
                        // List customer IDs found.
                        while (customerIdentities.MoveNext())
                        {
                            Console.WriteLine(
                                String.Format(
                                "Customer Id: {0}",
                                customerIdentities.Current["CustomerID"]));
                        }
                    }
                    finally
                    {
                        // Ensure the enumerator is closed.
                        if (customerIdentities != null)
                        {
                            customerIdentities.Close();
                        }
                    }
                }
            }
        }
    }
}

Voir aussi

Référence

BdcService

Services

IMetadataCatalog

GetDatabaseBackedMetadataCatalog(SPServiceContext)

GetEntity(String, String)

IEntity

GetMethodInstance(String, MethodInstanceType)

IMethodInstance

GetFilters()

IUserInputFilter

GetLobSystem()

GetLobSystemInstances()

ILobSystemInstance

IEntityInstanceEnumerator

EnumerateIdentities(IFilterCollection, ILobSystemInstance)