Axapta 在Dynamics AX 2012中,RECID在通用表中是否唯一?

Axapta 在Dynamics AX 2012中,RECID在通用表中是否唯一?,axapta,x++,Axapta,X++,在AX 2012的通用表格中,RECID是否唯一?我了解到这取决于版本,但我没有找到有关AX 2012的任何信息 若并没有,这难道不会破坏AX中表的多态性设计吗?AX中所有的AX表都是从Common扩展而来的?当Microsoft Dynamics AX将记录插入SQL表时,Common声明RecId..将记录插入到每条记录,而不管每条记录与哪个公司关联。字段的长度为64位,每个表都是唯一的 在Axapta 3.0及以下版本中,每个公司帐户的RECID是唯一的,长度为32位。因此,一家公司的记录

在AX 2012的
通用
表格中,RECID是否唯一?我了解到这取决于版本,但我没有找到有关AX 2012的任何信息


若并没有,这难道不会破坏AX中表的多态性设计吗?AX中所有的AX表都是从
Common
扩展而来的?当Microsoft Dynamics AX将记录插入SQL表时,
Common
声明
RecId
..

将记录插入到每条记录,而不管每条记录与哪个公司关联。字段的长度为64位,每个表都是唯一的

在Axapta 3.0及以下版本中,每个公司帐户的RECID是唯一的,长度为32位。因此,一家公司的记录不可能超过40亿,因为累进指数可能为负值

多态设计?我不确定您在本文中的意思,但给定RecId,您不知道它属于哪个表,您需要这些信息才能找到记录:

public Common findRecord(TableId _tableId, RecId _recId) 
{
    Common record = new DictTable(_tableId).makeRecord();
    select record where record.RecId == _recId; 
    return record; 
}

在SQL中,没有称为公共表的表。它是一个AX概念,您可以认为它只是一个包含方法的接口。

由“多态设计”表示,所有表都继承自<代码>通用< /代码>。我的意思是:如果我们有一辆Id属性为
LicensePlate
汽车和两个专业
卡车和
FamilyCar
,那么卡车实例和FamilyCar实例不可能有相同的LicensePlate。但是我想,RecId不是许可证,它不是所有普通对象的Id。您的界面比较最好地解释了这一点。非常感谢。精彩的解释!如果您将新(AX 2012)继承的表与
公共
类一起使用(它是一个类或接口,但决不是一个表,因为它在数据库中不存在),请向nice Jan B.Kjeldsen解释和polimorfism主题提供更多信息,您会发现父表和所有子表都将共享主表的
RecId
。通过这种方式,您也可以使用继承的表管理这种多态设计。