Fragmento de código: ejecución de la instancia del método AssociationNavigator de un tipo de contenido externo de una asociación sin una clave externa
Última modificación: jueves, 06 de mayo de 2010
Hace referencia a: SharePoint Server 2010
En este artículo
Descripción
Requisitos previos
Para usar este ejemplo
Descripción
En el siguiente ejemplo de código se muestra cómo ejecutar mediante programación una instancia del método AssociationNavigator para una asociación sin clave externa usando el modelo de objetos en tiempo de ejecución de BDC en el servidor.
Requisitos previos
Microsoft SharePoint Server 2010 o Microsoft SharePoint Foundation 2010 en el servidor.
Microsoft .NET Framework 3.5 y Microsoft Visual Studio en el equipo cliente.
Al menos un tipo de contenido externo registrado en el Repositorio de metadatos de BDC.
Para usar este ejemplo
Inicie Visual Studio y cree un proyecto de aplicación de consola C#. Seleccione .NET Framework 3.5 al crear el proyecto.
En el menú Ver, haga clic en Páginas de propiedades para que aparezcan las propiedades del proyecto.
En la ficha Compilación, para el Destino de la plataforma, seleccione Cualquier CPU.
Cierre la ventana de propiedades del proyecto.
En el Explorador de soluciones, en Referencias, quite todas las referencias del proyecto excepto System y System.Core.
Agregue las siguientes referencias al proyecto:
Microsoft.BusinessData
Microsoft.SharePoint
Microsoft.SharePoint.BusinessData
Reemplace el código generado automáticamente en Program.cs por el código que aparece al final de este procedimiento.
Reemplace los valores del nombre de entidad, el nombre de LobSystem y el nombre de LobSystemInstance con valores válidos.
Guarde el proyecto.
Compile y ejecute el proyecto.
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
{
//FKLessAssociationNavigator.
public static void FKLessAssociationNavigatorSample()
{
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 5
// to use to navigate the association.
IEntityInstance salesReasonInstance =
salesReasonEntity.FindSpecific(new Identity(5),
"Read Item", lobSystemInstance, OperationMode.Online);
// Get the association.
IAssociation association =
(IAssociation)salesOrderEntity.GetMethodInstance(
"Sales Order by Reason",
MethodInstanceType.AssociationNavigator);
// Create a collection with the entity instance.
EntityInstanceCollection sourceInstances =
new EntityInstanceCollection(1);
sourceInstances.Add(salesReasonInstance);
IEntityInstanceEnumerator associatedInstances = null;
try
{
// Navigate the association.
associatedInstances =
salesOrderEntity.FindAssociated(
sourceInstances, association,
lobSystemInstance, OperationMode.Online);
// 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();
}
}
}
}
}
Vea también
Referencia
GetDatabaseBackedMetadataCatalog(SPServiceContext)
FindSpecific(Identity, String, ILobSystemInstance, OperationMode)
GetMethodInstance(String, MethodInstanceType)
FindAssociated(EntityInstanceCollection, IAssociation, ILobSystemInstance, OperationMode)