Dynamics AX 2012 R2 Table Relation Properties

Created at 2015-01-05 Updated at 2018-05-06 Category Microsoft Dynamics AX Tag Microsoft Dynamics AX




AOT > Data Dictionary > Tables > MyTable > Relations.



The related primary key or alternate key field is in the referenced table, which is also called the parent table.





























































属性描述New in this version of

Microsoft Dynamics AX
Cardinality(基数)从引用表的每个主键值必须发生在本表的外键列的次数。例如,该值OneMore指一个或多个,但不是零。这意味着,每各父表的主键值必须出现在子表的外键列至少一次。如果业务规则规定,在父SalesTable表中的每个记录涉及到至少一个正在销售的项目。那么一个SalesLine表下面的一个关系节点, 应该使用OneMore值.在Microsoft Dynamics AX 2012此属性尚未被系统使用。本产品的未来版本可能会使用这个属性,以及RelatedTableCardinality属性Microsoft Dynamics AX的2012
CreateNavigationPropertyMethodsYes指示系统在表缓冲区类为每个外键关系的节点生成的导航方法。有关导航方法的详细信息,请参阅CreateNavigationPropertyMethods和RelatedTableRoleMicrosoft Dynamics AX的2012
EDTRelationYes指这种关系是通过软件工具,从一个老的extended data type(EDT)关系迁移到这里。Microsoft Dynamics AX的2012
EntityRelationshipRoleEntityRelationshipRole属性是用来阐明在表上定义的关系的语义。角色名应该是名词或名词短语。角色名称应注明相关的表中就关联对象的作用,或者它应该是一个短的词组,用现在时态动词,表示该表中起着关系中的作用开始。当关系是明确的时, 角色名不是必需的。
Model这种关系是一部分的模型。Microsoft Dynamics AX的2012
Name您选择的关系的描述性名称。
NavigationPropertyMethodNameOverride指定的导航方法的名称。如果没有指定值,导航方法使用RelatedTableRole属性的值。有关导航方法的详细信息,请参阅CreateNavigationPropertyMethods和RelatedTableRoleMicrosoft Dynamics AX的2012
RelatedTableCardinality(基数)指定在当前表中外键字段值是否可以在部分或全部记录行中为null。可能的值如下:



1. ZeroOne -指零次或一次。这意味着在一个子记录的外键字段可以为null。
2. ExactlyOne上 -意味着外键字段在任何子记录上都不能为null。
Microsoft Dynamics AX的2012
RelatedTableRole您键入一个文本,用来描述在该关系中引用父表的目的。当一个表只有一个关系, 它是引用给定的父表,那么您可以使用父表的名称作为RelatedTableRole的名称。有时一个表与给定引用父表之间有多个关系。在这种情况下,RelatedTableRole属性值应该尽量说明的该关系,从而能够区分另一个引用了同一个父表的关系的目的.该属性的值可作为, 那些基于AOT查询的数据源关系的JoinRelation属性的值。在标准情况下,这种用法是建议,因为它减少了非规范化。该属性与UseDefaultRoleNames属性互动。



有关RelatedTableRoleJoinRelation属性之间的交互的详细信息,请参阅RelatedTableRole和查询JoinRelation
Microsoft Dynamics AX的2012
RelationshipType你选择一个值,描述两个表之间的微妙关系。例如,值Composition意味着子记录 在脱离了指定父记录时, 不能有意义地存在。Floor表中的第四层的记录,不能脱离了父Building表而存在。











Note
DeleteActions应与该属性设置兼容。对于Composition关系中,DeleteActions应包括级联删除行为。有关删除操作的详细信息,请参见如何:创建删除操作

有关此属性的可用值的更多信息,请参阅了解的RelationshipType枚举的RelationshipType

在Microsoft Dynamics AX 2012此属性尚未被系统使用。本产品的未来版本可能会使用这个属性。

Microsoft Dynamics AX的2012
Role 一个用以描述关系的意义或角色的名称。例如,部门表的关系,可以跟踪该雇员目前属于的部门。同时另一个关系可以跟踪该雇员已要求转移的部门。两者都关系到部门表,但两人的关系都尽显不同的角色。在实践中,一个精美的值往往是父子表通过_下划线连接的名称。例如,SalesTable_SalesLine。该属性与UseDefaultRoleNames属性交互。 Microsoft Dynamics AX的2012
Table 该关系中引用的。
UseDefaultRoleNames Yes意味着系统必须为RoleRelatedTableRole属性产生的默认值。即使设置为Yes ,为RoleRelatedTableRole属性生成的值也不会显示在属性窗口中。另外, TreeNode类不使用生成的值。然而,反射类DictRelation使用生成的值。 Microsoft Dynamics AX的2012
Validate Yes指除非每一个通过窗体插入到字表中的记录都会被拒绝.除非相关的记录存在于引用的父表中。此外,通过从父表的窗体中删除一条记录不是被拒绝,而会删除子表中相关级联记录。RelationshipType属性为Link时, 您可以使用No比如在一些升级情景期间,你也可以在特定临时类中使用No即使当该值设置回Yes ,在插入或删除时也不会发生验证。









Caution
该值设为,并不能防止直接用X + + SQL数据操作,删除父记录,或在违反外键数据的完整性的情况下插入子记录。


















Note
当两个表的SaveDataPerCompany属性都设置为Yes, 系统会给每个关系添加DataAreaId字段。








本节将介绍如何使用RelatedTableRole属性来简化创建一个新的查询。

假设在一个表关系中,您为RelatedTableRole属性输入一个显式值。然后,您可以使用该值来填充AOT>查询 > MyQuery节点下的数据源关系的JoinRelation属性。这使您可以指定的连接只在一个位置的字段。如果连接领域不断改变,你必须更新连接只在一个位置。

之前,你可以设置JoinRelation属性的值,则必须删除字段RelatedField属性的值。

下面的两幅图显示了如何使用JoinRelation属性。

1. 第一个图片-显示了在表关系的属性,以及RelatedTableRole财产的价值被突出显示。
2. 第二个图片 – 显示了一个查询下一个数据源关系的性质。我们看到,对于JoinRelation属性的值是针对RelatedTableRole值的副本。

IC562597 在表上的相关属性RelatedTableRole

在接下来的图像,我们看到了JoinRelation属性的值是值的RelatedTableRole副本从以前的形象。

IC562598在查询下一个关系的JoinRelation属性







当你在一个表关系的CreateNavigationPropertyMethods属性设置 Yes,系统会生成导航方法为表缓冲级。一种导航方法,通过他们的外键关系连接两个表缓冲区实例。的UnitOfWork类就是这个导航键被使用的一个区域。

对于导航方法的名称是从上表关系的RelatedTableRole属性的值复制。这是真实的,当RelatedTableRole值显式设置在属性窗口中,当由UseDefaultRoleNames设置 Yes产生的RelatedTableRole值。

在以前的图像的属性值产生对孩子CustTable的缓冲以下导航方法。最直接的导航方法名称是从RelatedTableRole属性的值复制:

公众最终CustBankAccount bankAccounts中([CustBankAccount RELATEDTABLE])

### NavigationPropertyMethodNameOverride属性



下面的列表描述情况下,你必须覆盖该系统生成的表缓冲区类中的导航方法的名称:

表类已经有相匹配的RelatedTableRole属性值的方法名。 RelatedTableRole属性值比启用了方法名的最大长度。

在这种情况下,你必须选择一个导航方法的有效名称,并指定该名称作为NavigationPropertyMethodNameOverride属性的值,在表的关系。



推荐文章(由hexo文章推荐插件驱动)

Site by Reinhard Hsu using Hexo & Random

Hide