设置虚拟表关系
虚拟表启用时即可以设置关系。 您可以设置 1:N、N:1 和自定义多表(多态)关系。 可以在以下两者之间建立关系:
- Dataverse 中的本地表和虚拟表。
- 来自同一提供程序的虚拟表和其他虚拟表,例如,SQL->SQL。
例如,您无法在使用 OData 虚拟表提供程序创建的虚拟表和使用虚拟连接器提供程序创建的虚拟表之间设置关系。
在虚拟表中定义关系
使用虚拟连接器提供程序创建的虚拟表会自动创建在外部源表中表示的所有列。 这还包括定义关系的列。 但是,不会自动创建关系定义。 您必须在 Dataverse 中手动定义此关系。
以下示例在虚拟表(服务请求)和本机表(客户)之间创建 N:1 关系。 用于设置关系的列是 AccountId。 此列是客户表中的主键,是服务请求表中的外键。
服务请求虚拟表的表示如下所示。 您会注意到 AccountId 列(用于外部源中的关系的列)的类型为多行文本。 您需要将此列表示为查找类型来创建关系。
转到高级设置 > 设置 > 自定义,选择自定义系统。
在左侧导航窗格中,展开实体视图,浏览到服务请求虚拟表定义。
选择字段视图,选择 AccountId 列,然后选择删除。
选择删除确认删除此列。
要创建关系,在服务请求表中选择 N:1 关系。
选择新建多对一关系。
输入以下详细信息创建服务请求虚拟表和客户表之间的关系。
- 在关系定义部分 – 将主要实体列值设置为客户。
- 或者,如果您想要编辑关系的名称,您可以在名称列中进行编辑。
- 在查找字段部分,将显示名称设置为客户。
- 名称列会自动填充查找列名称。
- 将外部名称值设置为 AccountId(与源表中的列名称一致)。
保存,然后关闭关系。
参考服务请求虚拟表的列,您会注意到 AccountId 列是查找类型。 现在可以将此列添加到窗体和视图中,来查看每个服务请求记录的所有关联客户。
建立关系后,您现在可以创建新的服务请求并选择要与其关联的客户。
备注
在对虚拟表进行操作之前,您必须编辑此表的窗体和视图以包含查找列和其他必需的列。
小费
- 如果您没有将列设置为在基础源表的设计过程中自动递增,主键列应该包含在创建窗体中。 您必须在主键列中输入有效值,插入操作才能成功。