新增功能:列表枚举

上次修改时间: 2010年4月9日

适用范围: SharePoint Foundation 2010

本文内容
大型列表
具有查阅列的列表项的引用完整性
强制实施唯一列约束
外部列表

Microsoft SharePoint Foundation 2010 在列表基础结构中增加了各种功能,以改进与大型列表相关的用户体验并增强数据完整性。

大型列表

在 SharePoint Foundation 的企业部署中,列表内容通常会增长为一个大型集合,在这种情况下,当用户通过标准操作访问该内容时,网站的性能会降低。新的列表视图阈值 功能通过允许您指定数据库操作可检索的列表项的最大数目,从而解决了这一问题。如果查询超出阈值,则会阻止该查询,因为这样会对网站性能产生负面影响。

通过 SPWebApplication 类的属性,您可以设置返回列表项的操作的请求限制。例如,MaxItemsPerThrottledOperation 属性指定查询或列表更新可影响的项目的最大数目;如果超出该数目,则会取消操作。列表对象的 EnableThrottling 属性指定是否对列表应用限制,以及 SPQuerySPSiteDataQuery 是否均具有 RequestThrottleOverride 属性。SPFieldIndex 类表示对列表中一个或两个字段的复合索引,以便为使用这些字段进行筛选的有效列表项查询提供相应支持。

有关大型列表功能的信息,请参阅处理大型文件夹和列表。有关如何限制请求的信息,请参阅请求限制

具有查阅列的列表项的引用完整性

在 SharePoint Foundation 的早期版本中,您可以通过查阅字段在列表之间创建未严格定义的关系,子列表可以通过这种关系查阅父列表。在 SharePoint Foundation 2010 中,父列表中的项本来就"知道"子列表中的相关项,您可以通过指定删除行为来对子项设置引用完整性限制。您可以通过用户界面或对象模型定义列表关系和指定删除行为。

SPRelatedField 类代表两个列表中字段之间的关系。可通过调用 SPList 类的 GetRelatedFields() 方法来获得 SPRelatedField 对象的集合。SPRelationshipDeleteBehavior 枚举用于指定删除限制:Cascade 删除,即删除父列表项的同时也会删除某事务中的所有相关子项;Restrict 删除,即如果用户尝试删除父列表项(其中包含查阅该父列表项的子项),则会显示错误消息;或 None,表明不强制执行任何删除操作(默认值)。可通过查阅字段的 RelationshipDeleteBehavior 属性设置删除行为,该字段由 SPFieldLookup 类的实例表示。

有关详细信息,请参阅查阅和列表关系

强制实施唯一列约束

通过 SharePoint Foundation,您现在可以在列字段上提供主键,方法是使用(或"强制使用")名为唯一列约束 的新功能。使用此功能可对列表或文档库列中的值强制实施唯一性。注意,并非所有列类型都支持此功能。有关支持和不支持的列类型的列表,请参阅在列值中强制唯一性

要支持唯一性约束,必须能够对列编制索引。此外,在对查阅列强制实施唯一性时,对于目标列表中的列表项,子列表(查阅列所在的列表)中最多只能有一个对其进行查阅的列表项。换句话说,不是对目标列表的投影列(而是对 ID 列)强制实施唯一性。

还可以编程方式使用此功能,方法是使用 SPField 对象上名为 EnforceUniqueValues 的新属性。该属性可获取和设置一个布尔值以指定是否允许重复值;默认为允许重复值,因此您必须将列字段属性 EnforceUniqueValues 显式设置为 true。

外部列表

Microsoft Business Connectivity Services (BCS) 中引入了外部列表,从而允许您采用访问 SharePoint Foundation 列表数据的方式访问外部数据。用户可以采用与其他 SharePoint 列表进行交互的方式来与外部列表进行交互。有关外部列表的信息,请参阅构建基块:外部内容类型和外部列表

请参阅

概念

构造块:列表和文档库

处理大型文件夹和列表

在列值中强制唯一性

查阅和列表关系