将 SharePoint 列表对象模型和 SharePoint 客户端对象模型与外部列表一起使用

上次修改时间: 2015年3月9日

适用范围: SharePoint Server 2010

本文内容
使用 SharePoint 列表对象模型和客户端对象模型的好处
有关使用 SharePoint 列表对象模型和客户端对象模型的限制
将列表对象模型与外部列表结合使用时的注意事项

可使用下列对象模型,以编程方式操作通过 Microsoft Business Connectivity Services (BCS) 公开的外部数据:

  • BDC 对象模型(可在服务器和客户端使用此模型)。

  • Microsoft SharePoint 2010 对象模型,此模型包含 Microsoft.SharePoint 命名空间中的服务器端对象模型中的 SPList 类,以及其在 Microsoft.SharePoint.Client 和 Microsoft.SharePoint.Client.Silverlight 命名空间中的客户端对象模型中对应的 List 类。

表 1 汇总了可用的对象模型。

表 1. 可用的 SharePoint 服务器和客户端对象模型

对象模型

服务器

客户端

说明

BDC 对象模型

提供由 Business Connectivity Services 提供的命名空间库。在 SharePoint Foundation 2010、SharePoint Server 2010 和 Office Professional Plus 2010 中呈现。

BDC 对象模型通过外部内容类型以对称方式对服务器和客户端上的外部系统数据执行 CreateReadUpdateDelete (CRUD) 操作。

SPList 类(服务器端对象模型)

表示 SharePoint 网站上的列表。(Microsoft.SharePoint.dll)

SPList 类是基于 BDC 对象模型构建的,用于对服务器上的外部列表执行 CRUD 操作。

客户端对象模型

表示用于从 Microsoft .NET Framework 托管应用程序、Microsoft Silverlight 应用程序以及在浏览器中执行的 ECMAScript(JavaScript、JScript)与 SharePoint 网站进行交互的 SharePoint Foundation 2010 客户端 API。此类 API 提供了一种用于与远程计算机中的 SharePoint 数据进行交互的方式,即通过检索客户端上下文对象以获取对网站集级别或更低级别的客户端对象的访问权(Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Silverlight.dll)。

客户端对象模型是基于 SPList 类构建的,用于通过 SharePoint Web 服务从客户端执行 CRUD 操作。

下面的体系结构关系图显示服务器和客户端上同时存在的对象模型、这些对象模型之间的交互方式以及这些对象模型与其他 Business Connectivity Services 组件交互的方式,以及这些对象模型与通过使用 Business Connectivity Services 生成的解决方案交互的方式。

图 1. 服务器和客户端上的对象模型

SharePoint Server 和丰富客户端体系结构

可以选择要在客户端或服务器上对其进行编程的堆栈入口点。SPList 类具有一些限制,但如果遇到这些限制,则可使用 BDC 对象模型中较低级别的 API,这些 API 可操作实际外部内容类型。

使用 SharePoint 列表对象模型和客户端对象模型的好处

下面是使用 SharePoint 列表对象模型和客户端对象模型的好处。

  • **简单而熟悉的对象模型。**SharePoint 列表对象模型(SPList 类)易于使用且为 SharePoint 开发人员所熟知。

  • **可用性。**BDC 对象模型仅在安装了 Office Professional Plus 2010 的客户端上可用,而 SharePoint 对象模型在服务器和客户端上都可用。

  • **在部分信任的环境中运行。**SharePoint 对象模型可在部分信任的环境中运行,而 BDC 对象模型则相反。

有关使用 SharePoint 列表对象模型和客户端对象模型的限制

下面是有关使用 SharePoint 列表对象模型和客户端对象模型的限制。

  • **需要外部列表。**SharePoint 列表对象模型和客户端对象模型对服务器上的外部列表执行 CRUD 操作。因此,它们需要在服务器上创建外部列表。BDC 对象模型没有此要求,这是因为它直接通过外部内容类型执行 CRUD 操作。

  • **仅适用于受支持的简单类型。**SharePoint 列表对象模型和客户端对象模型仅在外部列表包含简单字段时适用。根据设计,外部列表是数据的基于行的平面表示形式。此时会忽略 SharePoint 列表类型系统不支持的复杂类型和简单类型。尤其是,您不能具有以下类型的字段:

    1. 复杂类型  例如,作为"Customer"结构的一部分的"CustomerAddress"字段,而该字段具有定义"Street"、"City"、"State"和"PostalCode"的子元素。

    2. 自定义类型   例如,作为"Applicant"结构一部分的"Resume"字段,该字段可能没有子元素,也无法使用某种受支持的 SharePoint 列表字段类型来表示它。

    3. 不受支持的 .NET 类型   外部列表不支持以下 .NET Framework 类型:System.GUID、System.Object、System.URI、System.UInt64 和 System.Int64。因此,如果外部列表中的某个字段属于此处列出的 .NET Framework 类型,则将忽略这些字段。

    BDC 对象模型没有此要求,它可与此处提及的所有类型的复杂字段一起使用。

  • 不支持 BDC 的高级功能  SharePoint 列表对象模型和客户端对象模型不支持 BDC 所支持的以下高级功能:

    1. 分页  外部列表不提供对数据的分页或分块。

    2. 批量操作  外部列表无法执行批量操作,例如,同时读取 25 个实例。

    3.   不支持流数据,例如外部系统中的二进制大型对象 (BLOB)。

    4. 复杂关联  外部列表不支持关联。

将列表对象模型与外部列表结合使用时的注意事项

请参阅

概念

设置上下文便于使用 BDC 对象模型

其他资源

代码段:将 SharePoint 列表对象模型用于服务器上的外部列表

代码段:结合使用 SharePoint 客户端对象模型与外部列表

Business Connectivity Services 对象模型的代码段