Фрагмент кода: выполнение экземпляра метода IdEnumerator внешнего типа контента
Дата последнего изменения: 6 мая 2010 г.
Применимо к: SharePoint Server 2010
В этой статье
Описание
Необходимые компоненты
Использование этого примера
Описание
В следующем примере кода показано программное выполнение экземпляра метода IdEnumerator внешнего типа контента с помощью объектной модели среды выполнения BDC на сервере.
Необходимые компоненты
Microsoft SharePoint Server 2010 или Microsoft SharePoint Foundation 2010 на сервере.
Microsoft .NET Framework 3.5 и Microsoft Visual Studio на клиенте.
Использование этого примера
Запустите Visual Studio и создайте проект консольного приложения C#. При создании проекта выберите .NET Framework 3.5.
В меню Вид выберите Страницы свойств, чтобы вывести свойства проекта.
На вкладке Построение в качестве Целевой платформы выберите Любой ЦП.
Закройте окно свойств проекта
В обозревателе решений в разделе Ссылки удалите все ссылки проекта кроме System и System.Core.
Добавьте в проект следующие ссылки:
Microsoft.BusinessData
Microsoft.SharePoint
System.Web
Замените код в файле Program.cs на код, приведенный в конце этой процедуры.
Замените значение SiteURL на действительный URL-адрес сайта.
Этот пример основан на учебной базе данных AdventureWorks и внешнем типе контента "Клиент". При работе с другой внешней системой измените в коде имя внешнего типа контента и LobSystem соответствующим образом.
Сохраните проект.
Скомпилируйте и запустите проект.
using System;
using Microsoft.SharePoint.BusinessData.SharedService;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.BusinessData.MetadataModel.Collections;
using Microsoft.BusinessData.Runtime;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint;
namespace SDKSamples
{
class Methods
{
static void Main(string[] args)
{
EnumerateCustomerIds();
}
// IdEnumerator.
public static void EnumerateCustomerIds()
{
string SiteURL = "<SiteUrl>";
using (SPSite site = new SPSite(SiteURL))
{
using (new Microsoft.SharePoint.SPServiceContextScope(
SPServiceContext.GetContext(site)))
{
BdcService service =
SPFarm.Local.Services.GetValue<BdcService>(String.Empty);
IMetadataCatalog catalog =
service.GetDatabaseBackedMetadataCatalog(
SPServiceContext.Current);
// Get customer Entity for Sample AdventureWorks Model which supplies the IdEnumerator Method.
IEntity customerEntity = catalog.GetEntity("AdventureWorks", "Customer");
// Get the default filter values.
IMethodInstance idEnumeratorMethodInstance =
customerEntity.GetMethodInstance(
"Id Enumerator", MethodInstanceType.IdEnumerator);
IFilterCollection defaultFilters =
idEnumeratorMethodInstance.GetFilters();
// Set the limit filter value to 10.
// This method instance has only one filter, which is the limit filter.
IUserInputFilter limitFilter = (IUserInputFilter)defaultFilters[0];
limitFilter[0] = 10;
// Get LOB System instance.
ILobSystemInstance lobSystemInstance =
customerEntity.GetLobSystem().
GetLobSystemInstances()["AdventureWorks"];
IEntityInstanceEnumerator customerIdentities = null;
try
{
// List customer identities with default filter values.
customerIdentities =
customerEntity.EnumerateIdentities(
defaultFilters, lobSystemInstance);
// List customer IDs found.
while (customerIdentities.MoveNext())
{
Console.WriteLine(
String.Format(
"Customer Id: {0}",
customerIdentities.Current["CustomerID"]));
}
}
finally
{
// Ensure the enumerator is closed.
if (customerIdentities != null)
{
customerIdentities.Close();
}
}
}
}
}
}
}
См. также
Ссылка
GetDatabaseBackedMetadataCatalog(SPServiceContext)