代码段:执行外部内容类型的 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 位于客户端上。

使用此示例

  1. 启动 Visual Studio 并创建 C# 控制台应用程序项目。创建项目时选择".NET Framework 3.5"。

  2. 从"视图"菜单中,单击"属性页"以显示项目属性。

  3. 在"生成"选项卡中,为"目标平台"选择"任何 CPU"。

  4. 关闭项目属性窗口。

  5. 在"解决方案资源管理器"中的"引用"下,删除除 System 和 System.Core 之外的所有项目引用。

  6. 向项目中添加以下引用:

    1. Microsoft.BusinessData

    2. Microsoft.SharePoint

    3. System.Web

  7. 将 Program.cs 中的代码替换为此过程结束时列出的代码。

  8. 将 SiteURL 值替换为有效网站 URL。

  9. 此示例基于 AdventureWorks 示例数据库和 Customer 外部内容类型。如果您使用其他外部系统,则在代码中相应更改外部内容类型的名称和 LobSystem。

  10. 保存该项目。

  11. 编译并运行该项目。

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

请参阅

引用

BdcService

Services

IMetadataCatalog

GetDatabaseBackedMetadataCatalog(SPServiceContext)

GetEntity(String, String)

IEntity

GetMethodInstance(String, MethodInstanceType)

IMethodInstance

GetFilters()

IUserInputFilter

GetLobSystem()

GetLobSystemInstances()

ILobSystemInstance

IEntityInstanceEnumerator

EnumerateIdentities(IFilterCollection, ILobSystemInstance)