Extrait de code : Exécuter l’instance de méthode AssociationNavigator 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 AssociationNavigator 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.
Le Microsoft .NET Framework 3.5 et Visual Studio sur l’ordinateur client.
Au moins un type de contenu externe enregistré dans le magasin de métadonnées BDC.
Pour utiliser cet exemple
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.
Dans le menu Affichage, cliquez sur Pages des propriétés pour afficher les propriétés du projet.
Sous l’onglet Générer, pour Plateforme cible, sélectionnez Any CPU.
Fermez la fenêtre de propriétés du projet.
Dans l’Explorateur de solutions, sous Références, supprimez toutes les références du projet à l’exception de System et System.Core.
Ajoutez les références suivantes au projet :
Microsoft.BusinessData
Microsoft.SharePoint
Microsoft.SharePoint.BusinessData
Remplacez le code généré automatiquement dans Program.cs par le code fourni à la fin de cette procédure.
Remplacez le nom d’entité, le nom LobSystemInstance et le nom LobSystem par des valeurs valides.
Enregistrez le projet.
Compilez et exécutez le projet.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.BusinessData.MetadataModel.Collections;
using Microsoft.BusinessData.Runtime;
using System.Diagnostics;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.BusinessData.SharedService;
namespace SDKSamples
{
class Methods
{
//Foreign Key Based AssociationNavigator.
public static void AssociationNavigatorSample()
{
BdcService service =
SPFarm.Local.Services.GetValue<BdcService>(String.Empty);
IMetadataCatalog catalog =
service.GetDatabaseBackedMetadataCatalog(
SPServiceContext.Current);
// Get entities.
IEntity customerEntity = catalog.GetEntity(
"AdventureWorks", "Customer");
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 customerInstance =
customerEntity.FindSpecific(
new Identity(1),
"Read Item",
lobSystemInstance,
OperationMode.Offline);
// Get the association.
IAssociation association =
(IAssociation)salesOrderEntity.GetMethodInstance(
"Customers Sales Orders",
MethodInstanceType.AssociationNavigator);
// Create a collection with the entity instance.
EntityInstanceCollection sourceInstances =
new EntityInstanceCollection(1);
sourceInstances.Add(customerInstance);
IEntityInstanceEnumerator associatedInstances = null;
try
{
// Navigate the association.
associatedInstances =
salesOrderEntity.FindAssociated(
sourceInstances,
association,
lobSystemInstance,
OperationMode.Offline);
// List all sales orders for customer 1.
Debug.WriteLine(
"Listing customer's 1 sales orders ID and dates:");
while (associatedInstances.MoveNext())
{
Debug.WriteLine(
String.Format(
"Id: {0}, OrderDate: {1}",
associatedInstances.Current["SalesOrderID"],
associatedInstances.Current["OrderDate"]));
}
}
finally
{
// Ensure the enumerator is closed.
if (associatedInstances != null)
{
associatedInstances.Close();
}
}
}
}
}
Voir aussi
Référence
GetDatabaseBackedMetadataCatalog(SPServiceContext)
FindSpecific(Identity, String, ILobSystemInstance, OperationMode)
GetMethodInstance(String, MethodInstanceType)
FindAssociated(EntityInstanceCollection, IAssociation, ILobSystemInstance, OperationMode)