代码段:执行外部内容类型的 IdEnumerator 方法实例
上次修改时间: 2010年5月6日
适用范围: SharePoint Server 2010
本文内容
说明
先决条件
使用此示例
说明
下面的代码示例演示如何通过使用服务器上的 BDC 运行时对象模型,以编程方式执行外部内容类型的 IdEnumerator 方法实例。
先决条件
Microsoft SharePoint Server 2010 或 Microsoft SharePoint Foundation 2010 位于服务器上。
Microsoft .NET Framework 3.5 和 Microsoft Visual Studio 位于客户端上。
使用此示例
启动 Visual Studio 并创建 C# 控制台应用程序项目。创建项目时选择".NET Framework 3.5"。
从"视图"菜单中,单击"属性页"以显示项目属性。
在"生成"选项卡中,为"目标平台"选择"任何 CPU"。
关闭项目属性窗口。
在"解决方案资源管理器"中的"引用"下,删除除 System 和 System.Core 之外的所有项目引用。
向项目中添加以下引用:
Microsoft.BusinessData
Microsoft.SharePoint
System.Web
将 Program.cs 中的代码替换为此过程结束时列出的代码。
将 SiteURL 值替换为有效网站 URL。
此示例基于 AdventureWorks 示例数据库和 Customer 外部内容类型。如果您使用其他外部系统,则在代码中相应更改外部内容类型的名称和 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)