Compartir a través de


Fragmento de código: Ejecución de la instancia del método AssociationNavigator de un tipo de contenido externo

Ú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

El siguiente ejemplo de código muestra cómo ejecutar mediante programación una instancia del método AssociationNavigator de un tipo de contenido externo mediante 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 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

  1. Inicie Visual Studio y cree un proyecto de aplicación de consola C#. Seleccione .NET Framework 3.5 al crear el proyecto.

  2. En el menú Ver, haga clic en Páginas de propiedades para que aparezcan las propiedades del proyecto.

  3. En la ficha Compilación, para el Destino de la plataforma, seleccione Any CPU.

  4. Cierre la ventana de propiedades del proyecto.

  5. En el Explorador de soluciones, en Referencias, quite todas las referencias del proyecto excepto System y System.Core.

  6. Agregue las siguientes referencias al proyecto:

    1. Microsoft.BusinessData

    2. Microsoft.SharePoint

    3. Microsoft.SharePoint.BusinessData

  7. Reemplace el código generado automáticamente en Program.cs con el código que aparece al final de este procedimiento.

  8. Reemplace el nombre de entidad, el nombre de LobSystemInstance y el nombre de LobSystem por valores válidos.

  9. Guarde el proyecto.

  10. Compile y ejecute el proyecto.

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

Vea también

Referencia

BdcService

Services

IMetadataCatalog

GetDatabaseBackedMetadataCatalog(SPServiceContext)

GetEntity(String, String)

IEntity

GetLobSystem()

GetLobSystemInstances()

ILobSystemInstance

IEntityInstance

FindSpecific(Identity, String, ILobSystemInstance, OperationMode)

GetMethodInstance(String, MethodInstanceType)

IAssociation

EntityInstanceCollection

IEntityInstanceEnumerator

FindAssociated(EntityInstanceCollection, IAssociation, ILobSystemInstance, OperationMode)