如何:基于 SQL Server 表创建外部内容类型

上次修改时间: 2010年8月10日

适用范围: SharePoint Server 2010

使用 Microsoft Business Connectivity Services (BCS) 可轻松创建连接到 Microsoft SQL Server 的外部内容类型。Microsoft SharePoint Designer 2010 中的外部内容类型设计器支持 Microsoft SQL Server 数据库。可以只发现数据库,指向表、视图或将执行所需操作的存储过程,然后返回所需的数据并使用该数据库创建外部内容类型,而不编写任何代码或 XML。

在本主题中,您将学习如何创建一个名为 Customer 的外部内容类型,该类型基于 Northwind SQL Server 2000 示例数据库中的 Customers 表。

先决条件

  • 为了使此过程简单化,将在运行 SharePoint Server 的服务器上安装 Microsoft SQL Server 2005 或更高版本。如果在其他计算机上安装 Microsoft SQL Server,则需要配置 Secure Store Service。有关详细信息,请参阅如何:使用 Secure Store Service 连接到外部系统

  • Northwind SQL Server 2000 数据库安装在运行 Microsoft SQL Server 的服务器上。

  • Microsoft SharePoint Designer 2010 安装在客户端计算机上。

创建基于 SQL Server 表的外部内容类型

当您使用外部内容类型设计器创建外部内容类型时,SharePoint Designer 2010 需要一个 SharePoint 网站来存储其生成的文件和项目(如外部列表)。因此,作为第一步,您需要在运行 SharePoint Server 的服务器上创建一个 SharePoint 网站来存储外部内容类型的项目,并在客户端的 SharePoint Designer 中打开该网站。

在 SharePoint Designer 中创建并打开 SharePoint 网站

  1. 浏览到运行 SharePoint Server 的服务器并创建新网站。

  2. 将新网站的 URL 键入为 http:// yourservername/sdksamples。

  3. 选择任意网站模板,例如"空白网站"。

  4. 单击"确定"创建网站。

  5. 在客户端计算机上启动 SharePoint Designer,然后打开创建的网站。该网站应在 SharePoint Designer 的主窗口中打开。

请注意 SharePoint Designer 中的新导航窗格。此窗格用于容纳您在 SharePoint Designer 中创建和编辑的所有 SharePoint 对象(如列表和库、外部内容类型、母版页和工作流)。

定义常规的外部内容类型设置

  1. 若要创建外部内容类型,首先请单击"外部内容类型"。

  2. 在"功能区"中,单击"外部内容类型"按钮,如下图所示。这将显示外部内容类型设计器以创建外部内容类型。

    创建新外部内容类型

  3. 在"新建外部内容类型"页上,指定"名称"、"显示名称"、"命名空间"和"Office 项目类型",如下图所示。此处您选择的 Office 项目类型决定了您需要附加到外部内容类型的 Outlook 行为。在此示例中,当在 Outlook 中脱机使用 Customer 外部内容类型时,其行为与本机联系人项目的行为类似。外部列表字段的脱机同步决定是否允许用户在 Microsoft Outlook 或 SharePoint Workspace 中脱机使用基于此外部内容类型的外部列表。在此示例中,接受默认值"已启用"设置。

    客户外部内容类型信息

添加与外部系统的连接

  1. 若要为外部内容类型指定数据源,请单击"单击此处发现外部数据源并定义操作"。

  2. 单击"添加连接"按钮,在"外部数据源类型选择"对话框中选择"SQL Server",然后单击"确定"。

  3. 在"SQL Server 连接"对话框中,指定 SQL Server 的名称,再键入 Northwind 作为数据库名称(如下图所示),然后单击"确定"。

    SQL Server 连接属性

  4. 在验证与上一步骤中指定的运行 SQL Server 的服务器的连接后,数据源资源管理器会显示 Northwind 数据库中的数据库对象。展开此数据库以查看其包含的表、视图和存储过程。对于此示例,请选择 Customer 表。

现在,您可以定义可对 Customer 外部内容类型执行的操作。

定义支持的操作及其参数和筛选器

  1. 必须在外部系统上定义将执行所需操作的方法及其参数。对于 SQL Server 数据库表,这非常简单,因为 SharePoint Designer 可自动生成基本方法。在此示例中,将为 Customer 外部内容类型创建所有基本操作:CreateRead ItemUpdateDeleteRead List

    在数据源资源管理器中,右键单击 Customers 表,然后单击"创建所有操作",如下图示。这将自动生成用于创建、删除、读取和更新 Northwind 数据库的 Customers 表中的记录的方法。此时可以选择要从 Customers 表公开的列并定义参数。

    为客户创建所有操作

    备注

    还可以通过使用快捷菜单上的各种选项创建各个操作,而不是自动生成所有基本操作。如果您不希望允许用户执行所有基本操作或如果数据库不支持某些操作,则可能需要对数据库表执行此操作。此外,"创建所有操作"命令仅适用于 SQL Server 表和视图。在跨多个表的视图上,确保支持写入操作,否则"创建所有操作"将失败。对于 SQL Server 表(和视图)(如 Web 服务或 SQL Server 存储过程)之外的数据源,需要在 SharePoint Designer 中单独创建每个操作。

  2. 紧接着,选择要公开的列、操作的输入和返回参数以及筛选参数。

    若要配置参数,请单击"下一步"。"参数配置"对话框将显示 Customers 表中的所有列。请注意,默认情况下所有列都处于选定状态。如果不希望选择所有列,则取消选择不需要的列。在此示例中,我们将接受默认值。

    1. 请注意,CustomerID 是当前选定的字段。因为我们不希望用户在 Update 表单中输入 CustomerID,因此取消选中"必需"复选框。但将"只读"复选框保持启用状态。这将启用外部内容类型上的更新功能。如果 ID 字段未设置为只读,则无法更新外部系统中的项目。

    2. 接下来,执行以下两个重要配置。如果外部内容类型映射到 Outlook 项目类型,则将外部内容类型的字段映射到 Outlook 项字段。例如,对于 Outlook 联系人项目,通过将数据库的 FirstName 映射到 Office 属性字段中的 First Name,将其映射到 Outlook 联系人中的 FirstName 列。这会将数据库的 FirstName 字段映射到 Outlook 联系人项目中的 FirstName,并使 FirstName 字段显示在 Outlook 联系人项目表单的 First Name 字段中。在此示例中,先将 ContactName 映射到 FullName 字段(如图所示)。然后,对 Address、Phone 和 Fax 字段重复此步骤。

      将属性映射到 Outlook 联系人项目字段

    3. 对于每个字段,确定其在外部内容类型选取器中是否可用。如果某个字段应在此选取器中可用,则选择该字段并选中"在选取器中显示"复选框。在此示例中,为 ContactName 和 Company Name 字段选中"在选取器中显示"复选框。

    完成此操作后,请单击"下一步"。

  3. 在"筛选器参数配置"对话框中,定义数据的筛选器。筛选器有助于限制从外部数据源操作返回的外部项(行)。始终强烈建议您添加限制筛选器以限制在 Read 操作过程中从外部系统返回的行数。为此,请单击"添加筛选器参数"。在"属性"窗格中,单击"(单击以添加)"。在"筛选器配置"对话框中,将新的筛选器命名为 LimitFilter。在"筛选器类型"字段中,选择"Limit"。然后单击"确定"。

    配置限制筛选器

    在"默认值"字段中,输入 1000 作为希望从数据库返回的行数。请注意,这会将操作返回的行数限制为 1000 行。单击"下一步"。

    备注

    请确保您为 limit 筛选器输入的默认值小于 2000。对于具有 2000 多个行的数据库连接,Business Data Connectivity (BDC) Service 将限制结果,因此无法从外部系统返回任何数据。如果必须返回 2000 多个行,则管理员必须增加服务器上的默认限制数。有关对限制加以限制以及如何增加限制值的详细信息,请参阅 TechNet 上的"管理员指南"。

  4. 单击"完成"。这将生成所有基本操作,如下图所示。

    外部内容类型生成的操作

  5. 单击"功能区"的"保存"按钮,以在运行 SharePoint Server 的服务器上的 BDC 元数据存储区中存储外部内容类型定义。此时已成功创建外部内容类型。

外部内容类型应对所有 Office 客户端和服务器产品立即可用,以便 Business Connectivity Services 显示功能和自定义解决方案通过 Business Connectivity Services 对象模型使用它。有关详细信息,请参阅如何:在 SharePoint 中创建外部列表,以便为刚创建的 Customer 外部内容类型创建外部列表。