Partager via


Extrait de code : exécuter une instance de méthode Finder d’un type de contenu externe

Dernière modification : jeudi 6 mai 2010

S’applique à : SharePoint Server 2010

Dans cet article
Description
Conditions requises
Pour utiliser cet exemple

Description

L’exemple de code suivant montre comment exécuter par programme une instance de méthode Finder d’un type de contenu externe en utilisant le modèle d’objet d’exécution BDC sur le serveur.

Conditions requises

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

  • Microsoft Visual Studio sur le client.

  • Au moins un type de contenu externe inscrit dans le magasin de métadonnées BDC.

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. Dans l’onglet Version, pour l’option Plateforme cible, sélectionnez Tout processeur.

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

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

    1. Microsoft.BusinessData

    2. Microsoft.SharePoint

    3. System.Web

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

  7. Remplacez les valeurs correspondant à <siteUrl>, <nameSpace> et <entityName> par des valeurs valides.

  8. Enregistrez le projet.

  9. Compilez et exécutez le projet.

using System;
using Microsoft.BusinessData.Runtime;
using Microsoft.SharePoint;
using Microsoft.SharePoint.BusinessData.SharedService;
using Microsoft.SharePoint.Administration;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.BusinessData.MetadataModel.Collections;

namespace SDKSamples
{
    class Methods
    {

        static void Main(string[] args)
        {
            BDCGetAllFieldsAndRecords();
        }

        // Get the fields and read data from an external content type.
        public static void BDCGetAllFieldsAndRecords()
        {
            // Specify the SiteURL, Namespace, and the Entity Name.
            string SiteURL = "<siteUrl>";
            string nameSpace = "<nameSpace>";
            string entityName = "<entityName>";

            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);

                    IEntity entity = catalog.GetEntity(
                        nameSpace, entityName);
                    ILobSystemInstance LobSysteminstance =
                        entity.GetLobSystem().
                        GetLobSystemInstances()[0].Value;

                    // Display the fields in the Entity.
                    IFieldCollection fieldCollection =
                        entity.GetFinderView("Read List").Fields;
                    foreach (IField field in fieldCollection)
                    {
                        Console.Write(field.Name.PadRight(20));
                    }

                    Console.WriteLine();

                    // Display all the records in the Entity.
                    IMethodInstance methodInstance = entity.GetMethodInstance(
                        "Read List", MethodInstanceType.Finder);
                    IEntityInstanceEnumerator ientityInstanceEnumerator =
                        entity.FindFiltered(
                        methodInstance.GetFilters(), LobSysteminstance);
                    while (ientityInstanceEnumerator.MoveNext())
                    {
                        foreach (IField field in fieldCollection)
                        {
                            Console.Write(
                                ientityInstanceEnumerator.
                                Current[field.Name].ToString().PadRight(20));
                        }
                        Console.WriteLine();
                    }

                }
                Console.ReadKey();
            }
        }
    }
}

Voir aussi

Référence

BdcService

Services

IMetadataCatalog

GetDatabaseBackedMetadataCatalog(SPServiceContext)

GetEntity(String, String)

IEntity

GetLobSystem()

GetLobSystemInstances()

ILobSystemInstance

GetFinderView(String)

IFieldCollection

GetMethodInstance(String, MethodInstanceType)

IMethodInstance

GetFilters()

FindFiltered(IFilterCollection, ILobSystemInstance)

IEntityInstanceEnumerator