Role 对象(模型设计器)

Role 对象定义实体的角色。角色是对两个相关实体的说明。此对象从 Field 对象继承属性。

属性

名称

基数

类型

说明

Name

0-1

String

角色的名称。如果 Cardinality 为 One 或 OptionalOne,则相关实体的 Name 为默认值。否则,字符串值默认为相关实体的 CollectionName。

Linguistics

0-1

Object

角色的 Linguistics 属性。如果未提供 Name,则不允许使用此元素。在这种情况下,SingularName 和 PluralName 分别默认为相关实体的 Name 和 Collection。

RelatedRoleID

1

String

目标实体的相应角色的 ID。此角色不能为 RelatedRole。此外,RelatedRole 的 RelatedRole 必须为此角色。

Cardinality

1

Enum

有四个选项:One、Many、OptionalOne、OptionalMany。

ContextualName

0-1

Enum

用角色来访问实体时,ContextualName 枚举器将覆盖该角色的目标实体中属性的 ContextualName 设置。枚举器可以为以下三个值之一:Attribute、Merge 或 Role。枚举器值默认为 Attribute,它使用属性名作为上下文名称。指定 Merge 将合并属性名和角色名作为上下文名称。如果此属性是实体的唯一标识属性,则指定 Role 会将角色名称用作上下文名称。如果它不是实体的唯一标识属性,则对 Role 的处理方式与 Merge 相同。

HiddenFields

0-1

Object

一组字段和字段文件夹,在用角色来访问实体时,客户端应用程序不应为角色的目标实体显示这些字段和字段文件夹。例如,在使用 HomeAddress 角色显示 Address 时,AddressType 属性应当是隐藏的。

ExpandInline

0-1

Boolean

指示客户端应用程序不应向用户显示角色,而应显示相关实体的字段,就好像这些字段是此实体的一部分一样。如果同时指定了角色扩展和查找行为,则前者优先。

PromoteLookup

0-1

Boolean

指示当包含实体显示为查找实体时,客户端应用程序也会将目标实体显示为查找实体。只有当角色的包含实体和目标实体都是查找实体时,才允许设置此值。如果 PromoteLookup 的值为 True,并且所提升角色的相关实体不是角色将提升为的目标实体,也不是其直接祖先或后代之一,则系统将提升查找角色的相关实体上的查找角色。

Preferred

0-1

Boolean

指示包含此角色的路径应当优先于不包含首选角色的路径。使用此布尔值可以指示如果有多个路径可供选择,则应当用哪个路径来访问另一个实体。

Recursion

0-1

Boolean

指示默认情况下是否应对关系进行递归遍历。只有当包含实体与目标实体相同时,才允许进行递归。角色将递归展开,但是,如果试图将实体 A 中的项扩展到 A 的上下文,或者它的一个直接祖先或后代,则递归将停止。

Binding

0-1

Object

表示此角色的数据库对象。请注意,关系的指定端必须与包含 RelatedRole 元素的实体所绑定的表中的列绑定,或等于实体所绑定的列。关系的另一端必须在此角色的包含实体所绑定的表中,或等于此实体所绑定的列。必须进行绑定,除非此角色的实体所绑定的表包含 RelatedRole 的实体所绑定的列(或者相反)。在这种情况下,列和表之间的包含关系是隐含的,因此不用指定绑定。

注释

在模型中,角色是对两个实体之间的关系的说明。

有关有效的枚举值的详细信息,请参阅模型设计器数据类型