zoukankan      html  css  js  c++  java
  • [AX]AX2012开发新特性表继承

    表继承是AX2012新引进的功能,AX2009是不支持的。表继承表示一个表可以继承另一个表的字段和方法,称为衍生表,和通过外键关联的父表/子表是不相关的。

    使用表继承首先要有一个基表,设置基表的属性SupportInheritance为yes允许可以从这个表继承,注意这时候表内不能有字段(这个限制有点让人吐槽啊,一开始就要确定表是否要支持继承被继承)。在设置SupportInheritance可能弹出个错误“Preperty InstanceRelationType must be set to an Int64 field for root table”,这是因为基表需要一个Int64的字段来匹配基表的纪录到衍生表,需要做的是在基表中新建一个Int64类型的字段,把基表的InstanceRelationType属性设为这个字段,这个字段纪录的是纪录衍生表的tableid。接下来就可以在基表中添加字段了。

    同样,创建一个衍生表,SupportInheritance也要设置为yes,基表的Extends属性选择基表。在衍生表中可以继续添加自己的字段了。

    在衍生表中插入纪录时,系统自动在基表中插入相应纪录,基表衍生表纪录的recid是相同的,基表的InstanceRelationType属性字段纪录衍生表的tableid,查看SQL数据库可以看到衍生表中是不包含基表的字段的,在AX中查询衍生表时系统通过recid和衍生表tableid自动获取衍生纪录在基表中的数据。

    删除基表的纪录会同时删除衍生表的纪录,同样删除基表的纪录也会自动级联删除相应衍生表的纪录,这点和通过外键链接删除子表的纪录不会删除主表纪录是不一样的。

    更多内容参见MSDN:http://msdn.microsoft.com/en-us/library/gg844024.aspx

  • 相关阅读:
    int、bigint、smallint 和 tinyint
    我的fedora9安装后配置
    系统引导设置与管理EasyBCD与VistaBootPRO
    从Xml文档内部引用Xml Schema验证
    linux开机顺序
    OS引导-笔记
    Logic Volume笔记
    Service笔记
    python中若类属性与实例属性同名
    解析JavaScript中的null与undefined
  • 原文地址:https://www.cnblogs.com/duanshuiliu/p/2637678.html
Copyright © 2011-2022 走看看