Partager via


Extrait de code : exécution de l’instance de méthode BulkSpecificFinder 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 BulkSpecificFinder 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 .NET Framework 3.5 et Microsoft Visual Studio sur le 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. Dans l’onglet Version, pour l’option Plateforme cible, sélectionnez Tout processeur.

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

  5. Dans Explorateur de solutions, sous Références, supprimez toutes les références de projet, sauf pour 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 généré automatiquement dans Program.cs par le code figurant à la fin de cette procédure.

  8. Remplacez les valeurs <ID> et la valeur SiteURL par des valeurs valides.

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

  10. Enregistrez le projet.

  11. Compilez et exécutez le projet.

using System;
using System.Collections.Generic;
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)
         {
            List<Identity> identities = new List<Identity>();
            identities.Add(new Identity(<ID1>));
                        identities.Add(new Identity(<ID2>));
            identities.Add(new Identity(<ID3>));
            identities.Add(new Identity(<ID4>));
            FindMultipleSalesOrderById(identities);
         }
 
         // BulkSpecificFinder.
         public static void FindMultipleSalesOrderById(
            IList<Identity> identities)
         {
            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 entity.
                    IEntity salesOrderEntity = catalog.GetEntity(
                        "AdventureWorks", "SalesOrder");
 
                    // Get LOB System instance.
                    ILobSystemInstance lobSystemInstance =
                        salesOrderEntity.GetLobSystem().
                        GetLobSystemInstances()["AdventureWorks"];
 
                    IEntityInstanceEnumerator orders = null;
 
                    try
                    {
                        // Read the given identities.
                        orders = salesOrderEntity.FindSpecificMultiple(
                            identities,
                            "Bulk Read Item",
                            lobSystemInstance,
                            OperationMode.Online);
 
                        // List found orders.
                        while (orders.MoveNext())
                        {
                            Console.WriteLine(
                                String.Format(
                                "Id: {0}, OrderDate: {1}",
                                orders.Current["SalesOrderID"],
                                orders.Current["OrderDate"]));
                        }
                    }
                    finally
                    {
                        // Ensure the enumerator is closed.
                        if (orders != null)
                        {
                            orders.Close();
                        }
                    }
                }
            }
        }
    }
}

Voir aussi

Référence

Identity

BdcService

Services

IMetadataCatalog

GetDatabaseBackedMetadataCatalog(SPServiceContext)

GetEntity(String, String)

IEntity

GetLobSystem()

GetLobSystemInstances()

ILobSystemInstance

IEntityInstanceEnumerator

FindSpecificMultiple(IList<Identity>, String, ILobSystemInstance, OperationMode)