Фрагмент кода. Выполнение экземпляров методов Associator и Disassociator над внешним типом контента
Дата последнего изменения: 6 мая 2010 г.
Применимо к: SharePoint Server 2010
В этой статье
Описание
Необходимые компоненты
Использование этого примера
Описание
В примере кода ниже показывается, как программно выполнить экземпляры методов Associator и Disassociator внешнего типа контента, используя объектную модель среды выполнения BDC на сервере.
Необходимые компоненты
Microsoft SharePoint Server 2010 или Microsoft SharePoint Foundation 2010 на сервере.
Microsoft .NET Framework 3.5 и Microsoft Visual Studio на клиентском компьютере.
По крайней мере один внешний тип контента, зарегистрированный в хранилище метаданных BDC.
Использование этого примера
Запустите Visual Studio и создайте проект консольного приложения C#. При создании проекта выберите .NET Framework 3.5.
В меню Вид выберите Страницы свойств, чтобы отобразить свойства проекта.
На вкладке Построение в качестве значения поля Целевая платформа выберите Любой ЦП.
Закройте окно свойств проекта
В обозревателе решений в разделе Ссылки удалите все ссылки проекта кроме System и System.Core.
Добавьте в проект следующие ссылки:
Microsoft.BusinessData
Microsoft.SharePoint
Microsoft.SharePoint.BusinessData
Замените автоматически созданный код в файле Program.cs на код, приведенный в конце этой процедуры.
Замените значения имени сущности, имени LobSystem и имени LobSystemInstance на допустимые значения.
Сохраните проект.
Скомпилируйте и запустите проект.
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);
}
}
}
См. также
Ссылка
GetDatabaseBackedMetadataCatalog(SPServiceContext)
FindSpecific(Identity, String, ILobSystemInstance, OperationMode)
GetMethodInstance(String, MethodInstanceType)
Associate(EntityInstanceCollection, IEntityInstance, IAssociation, ILobSystemInstance)
Disassociate(EntityInstanceCollection, IEntityInstance, IAssociation, ILobSystemInstance)