使用 SharePoint Designer 2010 创建 SharePoint Server 2010 外部内容类型关联

**摘要:**了解如何使用 Microsoft Business Connectivity Services (BCS) 在 Microsoft SharePoint Designer 2010 中不通过代码创建外部内容类型之间的关联。

上次修改时间: 2011年1月12日

适用范围: Business Connectivity Services | Open XML | SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Online | SharePoint Server 2010 | Visual Studio

本文内容
简介
使用 SharePoint Designer 2010 时受支持的关联
使用 SharePoint Designer 2010 时不受支持的关联
创建基于数据库的外部内容类型关联
创建反向关联
创建基于 WCF 的外部内容类型关联
结论
其他资源

目录

  • 简介

  • 使用 SharePoint Designer 2010 时受支持的关联

  • 使用 SharePoint Designer 2010 时不受支持的关联

  • 创建基于数据库的外部内容类型关联

  • 创建反向关联

  • 创建基于 WCF 的外部内容类型关联

  • 结论

  • 其他资源

简介

本文面向 Microsoft SharePoint Server 2010 中 Microsoft Business Connectivity Services (BCS) 解决方案的开发人员而撰写,这些开发人员要以声明方式在外部内容类型之间创建关联,而不使用代码。在本文中,您将了解受支持和不受支持的各种关联,以及如何使用 Microsoft SharePoint Designer 2010 创建基于数据库的关联、反向关联和基于 Windows Communication Foundation (WCF) 的外部内容类型关联。

为了帮助您更好地了解概念,请阅读如下相关部分:

  • 如需有关外部内容类型关联的帮助,请参阅:

    • 使用 SharePoint Designer 2010 时受支持的关联

    • 使用 SharePoint Designer 2010 时不受支持的关联

    • 创建基于数据库的外部内容类型关联:步骤 3 和步骤 4

  • 若要确定是否需要反向关联,请参阅:

    • 使用 SharePoint Designer 2010 时受支持的关联

    • 创建基于数据库的外部内容类型关联:步骤 3 和步骤 4

    • 创建反向关联:步骤 1

  • 若要确定应在何种外部内容类型上创建关联,请参阅:

    • 创建基于数据库的外部内容类型关联:步骤 3

    • 创建基于 WCF 的外部内容类型关联:步骤 1

使用 SharePoint Designer 2010 时受支持的关联

作为平台和对象模型,Business Connectivity Services 提供许多不同的关联类型。通过 SharePoint Designer 2010外部内容类型设计器,可以轻松创建所有可能关联类型的一部分,只需支持下面的内容即可:基于外键的一对多关联。

乐队和包含乐队音乐的专辑之间的关系就是一种一对多类型的关联。一个乐队可以产生多个专辑,而每个专辑总是会与创建该专辑的乐队关联。

外键必须存在于外部系统中,也就是说专辑的元数据(标题、价格、发布日期和其他信息)必须包含可以确定该乐队的独家信息。

使用 SharePoint Designer 2010 时不受支持的关联

使用 SharePoint Designer 2010 时不支持以下关联。

多对多关联(无外键)

如果某种关联中,一种类型的项目没有任何信息可以确定另一种类型的相关项目,则 SharePoint Designer 2010外部内容类型设计器无法创建这种类型的关联。

音乐流派和音乐艺术家之间的关系就是一种该类型的关联。"古典"流派无法包含所有古典艺术家的有限列表,即"古典"只是一个类别的名称。一个艺术家也有可能被分类到多个流派之下:"摇滚"、"流行"、"非主流"以及"古典"等等。对于某些业务,您可能必须创建此类列表。

用户必须使用 XML 编辑器或使用其他外部内容类型设计器(如 Microsoft Visual Studio 2010)手动在 BDC 模型文件的 XML 中创建这些关联。

具有多个相关外部内容类型的关联

SharePoint Designer 2010外部内容类型设计器无法创建或编辑需要多个外部内容类型来确定某个唯一项目的关联。

计划在某个具有多个会议室的建筑中召开的会议就是这种类型的关联。此类型的一个项目需要两个不同的相关项目来确定:"会议室"和"时间"。如果您指定建筑中的一个会议室,然后继续指定一个时间点,则指定了会议于指定的时间在该会议室中召开。

创建基于数据库的外部内容类型关联

  1. 使用 SharePoint Designer 2010 打开您的网站,然后转到"外部内容类型设计器"视图。

    图 1. SharePoint Designer 2010 外部内容类型列表页

    外部内容类型设计器

  2. 您可以创建基于表、视图、存储过程、Web 方法、Microsoft .NET Framework 方法等组合的外部内容类型,如图 2 所示。

    图 2. 创建外部内容类型

    创建外部内容类型

  3. 在 SharePoint Designer 2010 中,打开包含相关外部内容类型外键的外部内容类型。例如,您可以创建两种外部内容类型,XY,如图 3 所示。

    图 3. 两种相关的外部内容类型

    两种相关的外部内容类型

    如果 X 包含存放某个值(指定 Y 外部内容类型项目)的外键,请在 SharePoint Designer 中打开 X,导航至"操作设计器",如图 4 所示。

    图 4. 操作设计器

    操作设计器

  4. 确定您要创建的关联。

    关联可以在您选择一种类型的项目时根据其与另一种类型项目之间的关系,检索并显示另一种类型的项目,如图 5 所示。

    图 5. SharePoint Designer 中两种类型的关联

    SharePoint Designer 中两种类型的关联

    在大多数方案中,只需要有关联就可以了。(反向关联将在创建反向关联中讨论。)

    备注

    图 5 中标有 Association 的关联也可以视为正向关联。如上所述,通常只需要有这种关联便可创建两个实体之间的关联。

  5. 在"操作设计器"中,在"数据源资源管理器"中展开您的数据源。

    创建数据库的关联(Microsoft SQL Server 数据源连接)与创建 WCF 服务关联或 .NET Framework 类型连接关联稍有不同。本示例从数据库着手,继而使用创建基于 WCF 的外部内容类型关联中的 WCF。

  6. 如果要对表创建关联,请右键单击您为该外部内容类型创建其他操作时使用的相同表(请参阅图 6)。

    图 6. 在数据源资源管理器中选择表

    在数据源资源管理器中选择表格

  7. 单击"新建关联"。

    "关联"向导随即打开。其包含一个"关联属性"部分和三个"参数"部分:"输入参数"、"筛选参数"和"返回参数",如图 7 所示。

    图 7. 关联向导

    关联向导

  8. 现在要求您选择一个相关外部内容类型。(请参阅"错误和警告"窗格以获得整个向导的指南。)单击"浏览",在"外部内容类型选择"对话框中,选择要与当前外部内容类型关联的外部内容类型,如图 8 所示。当前外部内容类型应该为您当前在 SharePoint Designer 中打开的外部内容类型。

    图 8."外部内容类型选择"对话框

    "外部内容类型选择"对话框

    备注

    当前外部内容类型附带有"(当前)"以指明其身份。

  9. 选择相关外部内容类型之后,随即会显示一个表(请参阅图 9)。此表列出了该外部内容类型中出现的所有标识符。

    图 9. 外部内容类型中出现的标识符

    外部内容类型上呈现的标识符

  10. 为使此关联在所有用户方案(即使用外部内容类型选取器的方案)中生效,针对当前外部内容类型的每个操作("读取项目"、"读取列表"、"创建"或"更新")都必须在"外键"字段出现的位置标记有外部标识符。如图 9 中表上方的文字所述,在应映射至标识符的当前外部内容类型的所有字段列表中选择一个字段。

    备注

    通常,该字段为"外键"字段。如果名称相同,则会为您执行映射,并且错误消息将消失。

  11. 在向导的下一页上,如图 10 所示,您将为关联的输入配置参数。在许多情况下,字段和列的名称都相同;因此,此步骤与您在其中设置属性的前一个步骤类似。

    图 10. 输入参数配置页

    输入参数配置页

  12. 在向导的该页上,配置关联的"输入"(例如,通过 Web 部件指定或提供的项目)。您必须将数据源元素(通常为"外键"列)作为关联的输入映射至相关外部内容类型的标识符。在左侧的"数据源元素"窗格中,在列表中选择数据源元素。在右侧的"属性"窗格中,选中"映射到标识符"复选框。在"标识符"列表中,选择相应的标识符,如图 12 所示。

    若要查看外部内容类型的名称及其标识符的名称,请参阅"错误和警告"窗格,如图 11 所示。

    图 11. 显示外部内容类型和标识符名称的"错误和警告"窗格

    错误和警告窗格

    图 12. 选择标识符

    选择标识符

  13. 在"筛选参数"部分,您可以创建筛选从关联返回的内容的筛选器(请参阅图 13)。此步骤并非必要步骤,通常无需执行。使用此处筛选器的一个可能示例便是对"雇员"的关联执行筛选,筛选掉"兼职"人员,留下"全职"人员。

    图 13. 筛选参数配置页

    "筛选参数配置"页

  14. 与"输入参数"部分类似,"返回参数"部分允许您配置返回的数据(例如,如果指定了某种类型的项目,则您可以配置返回的与该项目关联或相关的项目列表,如某个"客户"的所有"订单")。

    在该页上,如果尚未将当前外部内容类型的字段映射到当前外部内容类型的标识符,请执行此操作(请参阅图 14)。在某些情况下,已为您配置该页。

    图 14. 返回参数配置页

    "返回参数配置"页

  15. 单击"完成"以保存您的外部内容类型。现在便在 Web 部件、选取器和缓存中启用了关联。

    图 15. 外部内容类型操作

    外部内容类型操作

您可以通过创建配置文件页来查看关联,如图 16 所示。

图 16. 配置文件页

配置文件页

备注

创建配置文件页时,关联会显示在相关列表 Web 部件中(会自动在页面上设置此部件)。在这种情况下,会为填写调查的客户显示所有的调查。如果选择另一个客户,并将其显示在配置文件页中,则该页面上的调查项目列表会发生相应的变化(请参阅图 17)。

图 17. 客户和相关调查的配置文件页

客户和相关调查的配置文件页

创建反向关联

若要创建反向关联,您必须具有存储过程。您无法为当前外部内容类型创建针对表的反向关联。如果已创建关联,则不需要反向关联来在 Web 部件和选取器中启用关联。

您应注意到关联 是返回多个当前类型(您在 SharePoint Designer 中打开的外部内容类型)项目的一种方法。但反向关联 是返回单个相关外部内容类型(不是您要对其创建操作的外部内容类型)项目的一种方法。

您无法为当前外部内容类型创建针对表的反向关联,因为这会基于该表返回信息,而该表不提供有关相关外部内容类型的信息。存储过程可以通过实施必要的查询来弥补此缺陷。

创建反向关联的优势在于向导可以处理其他外部内容类型操作上的外部标识符映射。若要将外部列表与 Microsoft Outlook 2010 或 Microsoft SharePoint Workspace 2010 断开,您可以创建带有反向关联的简单 [ 1 . . 1 ] 关联来启用选取器、缓存项目检索等。

音乐专辑与专辑封面就是一个基于外键的简单"一对一"关联。

创建基于 WCF 的外部内容类型关联

  1. 若要创建 WCF 服务连接的关联,只需针对适当的 Web 方法创建关联即可。同样对包含外键的外部内容类型创建关联。在本示例中,您知道在每个产品的元数据中,存在该特定产品的子类别。因此,您在 SharePoint Designer 中打开"产品",然后在此处创建关联。

    例如,您可能希望在以下项目(请参阅图 18)之间创建关联 GetProductsofSubcategory

    • 外部内容类型 Product(标识符 = ProductId,FK 字段 = ProductSubcategoryKey

    • 外部内容类型 SubCategory(标识符 = ProductSubcategoryID

    图 18. 新建关联

    创建新关联

  2. 向导的其他部分与前一个示例相同。本示例演示一种方案,其中相关外部内容类型(SubCategoryProductSubcategoryID)上标识符的名称与当前外部内容类型(ProductProductSubcategoryKey)上"外键"字段的名称不同。

    备注

    由于名称 ProductSubcategoryIDProductSubcategoryKey 不同,因此无法在"关联属性"页上为您完成此匹配。您必须从"字段"列表中选择正确的字段,如图 19 所示。

    图 19."关联属性"页

    关联属性页

  3. 选择当前外部内容类型 (Product) 的字段,其指示相关外部内容类型 (SubCategory) 的外键(这同样是 ProductSubcategoryKey)。这将映射至 SubcategoryProductSubcategoryID 标识符。

    图 20. 在关联属性中选择 ProductSubcategoryKey 字段

    选择 ProductSubcategoryKey 字段

  4. 在"输入参数"页上,您必须配置关联的输入。"错误和警告"下方的消息指示您必须选择数据源元素。您选择的元素必须表示关联输入的标识符。

    图 21. 在输入参数中选择数据源元素

    在输入参数中选择数据源元素

  5. 您所创建的关联同样为 GetProductsofSubcategory。关联的输入为 Subcategory,您"获得的"(返回的)内容为 Products。因为 Subcategory 为输入,所以在"数据源元素"窗格中,选择 Subcategory 标识符并映射它,如图 22 所示。

    图 22. 映射 ProductSubcategoryID

    映射 ProductSubcategoryID

  6. 您无法为基于 WCF 服务的外部内容类型关联创建筛选参数,因此不存在相应的向导页。单击"下一步"转到"返回参数"页。

  7. 最后,若要返回产品,您必须为 Product 配置返回参数。如上所述,Product 的标识符为 ProductID。在"错误和警告"的下方,错误消息会指导您映射该标识符,如图 23 所示。

    图 23. 在返回参数配置中映射标识符

    "返回参数配置"中的标识符

    在此特定的 Web 服务 Web 方法中,服务的创建者将数据源元素重新命名为 ProductKey,而不是 ProductID,如图 24 所示。

    备注

    您已在向导的"返回参数配置"页上以类似方式映射其他操作(例如 Read Item 操作)。

    图 24. 读取项目操作

    读取项目操作

  8. 通过选中"映射到标识符"复选框,然后在"标识符"列表中选择标识符来映射返回参数标识符,如图 25 所示。

    图 25. 映射返回参数

    映射返回参数

  9. 单击"完成"以保存外部内容类型。现在便在 Web 部件、选取器和缓存中启用了关联,如图 26 所示。

    图 26. 启用关联

    已启用关联

  10. 再次创建一个配置文件页来查看工作关联,如图 27 所示。

    图 27. 显示工作关联的配置文件页

    具有工作关联的配置文件页

结论

本文面向对 Microsoft SharePoint Server 2010 中的 Microsoft Business Connectivity Services (BCS) 有经验的用户,介绍了如何以声明方式(即不使用代码)创建外部内容类型之间的关联。本文介绍了外部内容类型的以下关联:

  • Microsoft SharePoint Designer 2010 中受支持的关联

  • SharePoint Designer 2010 中不受支持的关联

  • 基于数据库的关联

  • 反向关联

  • 基于 Windows Communication Foundation (WCF) 的关联

其他资源

有关详细信息,请参阅以下资源: