Compartir a través de


Fragmento de código: ejecución de la instancia de método BulkAssociationNavigator 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

En el siguiente ejemplo de código se muestra cómo ejecutar mediante programación una instancia de método BulkAssociationNavigator de un tipo de contenido externo con el modelo de objetos de 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

  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 Cualquier 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 por el código que aparece al final de este procedimiento.

  8. Reemplace los valores del nombre de entidad, el nombre de LobSystem y el nombre de LobSystemInstance 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 BulkAssociationNavigator.
        public static void BulkAssociationNavigatorSample()
        {
                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 customer1 = 
                    customerEntity.FindSpecific(
                    new Identity(1), 
                    "Read Item", 
                    lobSystemInstance, 
                    OperationMode.Offline);
                IEntityInstance customer2 = 
                    customerEntity.FindSpecific(
                    new Identity(2), 
                    "Read Item", 
                    lobSystemInstance, 
                    OperationMode.Offline);

                // Get the association.
                IAssociation association = 
                    (IAssociation)salesOrderEntity.GetMethodInstance(
                    "Bulk Customers Sales Orders", 
                    MethodInstanceType.BulkAssociationNavigator);

                // Create a collection with the entity instance.
                EntityInstanceCollection sourceInstances1 = 
                    new EntityInstanceCollection(1);
                sourceInstances1.Add(customer1);
                EntityInstanceCollection sourceInstances2 = 
                    new EntityInstanceCollection(1);
                sourceInstances2.Add(customer2);

                IList<EntityInstanceCollection> entityInstanceCollectionList = 
                    new List<EntityInstanceCollection>(2);
                entityInstanceCollectionList.Add(sourceInstances1);
                entityInstanceCollectionList.Add(sourceInstances2);

                IEntityInstanceEnumerator associatedInstances = null;
                try
                {
                    // Navigate the association.
                    associatedInstances = 
                        salesOrderEntity.FindAssociatedMultiple(
                        entityInstanceCollectionList, 
                        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

FindAssociatedMultiple(IList<EntityInstanceCollection>, IAssociation, ILobSystemInstance, OperationMode)