将 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 对象模型通过外部内容类型以对称方式对服务器和客户端上的外部系统数据执行 Create、Read、Update 和 Delete (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. 服务器和客户端上的对象模型
可以选择要在客户端或服务器上对其进行编程的堆栈入口点。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 列表类型系统不支持的复杂类型和简单类型。尤其是,您不能具有以下类型的字段:
复杂类型 例如,作为"Customer"结构的一部分的"CustomerAddress"字段,而该字段具有定义"Street"、"City"、"State"和"PostalCode"的子元素。
自定义类型 例如,作为"Applicant"结构一部分的"Resume"字段,该字段可能没有子元素,也无法使用某种受支持的 SharePoint 列表字段类型来表示它。
不受支持的 .NET 类型 外部列表不支持以下 .NET Framework 类型:System.GUID、System.Object、System.URI、System.UInt64 和 System.Int64。因此,如果外部列表中的某个字段属于此处列出的 .NET Framework 类型,则将忽略这些字段。
BDC 对象模型没有此要求,它可与此处提及的所有类型的复杂字段一起使用。
不支持 BDC 的高级功能 SharePoint 列表对象模型和客户端对象模型不支持 BDC 所支持的以下高级功能:
分页 外部列表不提供对数据的分页或分块。
批量操作 外部列表无法执行批量操作,例如,同时读取 25 个实例。
流 不支持流数据,例如外部系统中的二进制大型对象 (BLOB)。
复杂关联 外部列表不支持关联。
将列表对象模型与外部列表结合使用时的注意事项
BdcIdentity 是 SharePoint 列表对象的一个字段,它表示特定列表项的标识。这是用于唯一标识某个特定列表项的唯一确定性方法。可以使用 SPList 对象的字段集合来获取它。有关示例,请参阅代码段:将 SharePoint 列表对象模型用于服务器上的外部列表和代码段:结合使用 SharePoint 客户端对象模型与外部列表。
外部列表项的 ItemID 始终为 0。应改用 BdcIdentity。
在将 SharePoint 客户端对象模型与外部列表结合使用时,还需要记住其他一些注意事项。有关详细信息,请参阅代码段:从客户端上的外部列表中获取项数据。
请参阅
概念
其他资源
代码段:将 SharePoint 列表对象模型用于服务器上的外部列表