Partager via


Extrait de code : Exécuter les instances de méthode Associator et Disassociator 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 des instances de méthodes Associator et Disassociator 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 Visual Studio et Microsoft .NET Framework 3.5 sur l’ordinateur client.

  • Au moins un type de contenu externe enregistré 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. 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. Microsoft.SharePoint.BusinessData

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

  8. Remplacez les valeurs de nom d’entité, de nom LobSystem et de nom LobSystemInstance par des valeurs valides.

  9. Enregistrez le projet.

  10. Compilez et exécutez le projet.

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

namespace SDKSamples
{
    class Associate
    {
        // FKLessAssociateDisAssociate.
        public static void AssociateSalesOrderWithSalesReasonSample()
        {
            BdcService service = 
                SPFarm.Local.Services.GetValue<BdcService>(String.Empty);
            IMetadataCatalog catalog = 
                service.GetDatabaseBackedMetadataCatalog(
                SPServiceContext.Current);

            // Get entities.
            IEntity salesReasonEntity = catalog.GetEntity(
                "AdventureWorks", "SalesReason");
            IEntity salesOrderEntity = catalog.GetEntity(
                "AdventureWorks", "SalesOrder");

            // Get LOB System instance.
            ILobSystemInstance lobSystemInstance = 
                salesOrderEntity.GetLobSystem().GetLobSystemInstances()
                ["AdventureWorks"];

            // Get the source entity instance with ID 1 to use to navigate the association.
            IEntityInstance salesReasonInstance = 
                salesReasonEntity.FindSpecific(
                new Identity(1), 
                "Read Item", 
                lobSystemInstance, 
                OperationMode.Offline);
            IEntityInstance salesOrderInstance = 
                salesOrderEntity.FindSpecific(
                new Identity(44444), 
                "Read Item", 
                lobSystemInstance, 
                OperationMode.Offline);

            // Create a collection with the source instance.
            EntityInstanceCollection sourceInstances = 
                new EntityInstanceCollection(1);
            sourceInstances.Add(salesReasonInstance);

            // Get the association.
            IAssociation associator = 
                (IAssociation)salesOrderEntity.GetMethodInstance(
                "Sales Order by Reason Associator", 
                MethodInstanceType.Associator);

            // Associate.
            salesOrderEntity.Associate(
                sourceInstances, 
                salesOrderInstance, 
                associator, 
                lobSystemInstance);

            // Get the disassociator.
            IAssociation disassociator = 
                (IAssociation)salesOrderEntity.GetMethodInstance(
                "Sales Order by Reason Disassociator", 
                MethodInstanceType.Disassociator);

            // Disassociate.
            salesOrderEntity.Disassociate(
                sourceInstances, 
                salesOrderInstance, 
                disassociator, 
                lobSystemInstance);            
        }

    }
}

Voir aussi

Référence

BdcService

Services

IMetadataCatalog

GetDatabaseBackedMetadataCatalog(SPServiceContext)

GetEntity(String, String)

IEntity

GetLobSystem()

GetLobSystemInstances()

ILobSystemInstance

IEntityInstance

FindSpecific(Identity, String, ILobSystemInstance, OperationMode)

GetMethodInstance(String, MethodInstanceType)

IAssociation

EntityInstanceCollection

Associate(EntityInstanceCollection, IEntityInstance, IAssociation, ILobSystemInstance)

Disassociate(EntityInstanceCollection, IEntityInstance, IAssociation, ILobSystemInstance)