[AX]AX2012开发新特性-表继承
2012-08-14 11:11
211 查看
表继承是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
使用表继承首先要有一个基表,设置基表的属性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
相关文章推荐
- [AX]AX2012开发新特性-添加计算字段到视图
- [AX]AX2012开发新特性-禁止表或者表字段
- [AX]AX2012开发新特性-Valid time state table
- [AX]AX2012开发新特性-UnitOfWork
- [AX]AX2012开发新特性-全文索引
- [AX]AX2012开发新特性-outer join中使用QueryFilter
- [AX]AX2012开发新特性-TempDB临时表
- [AX]AX2012开发新特性-Query的Having节点
- IOS开发之三大特性(继承)
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- 黑马程序员_iOS开发之OC之面向对象之三大特性封装、继承和多态
- python3全栈开发-面向对象的三大特性(继承,多态,封装)之继承
- ios开发-OC面向对象的三个特性-继承和组合的学习
- 【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态
- [置顶] iOS初级开发之封装头部视图带图片旋转<继承UITableViewHeaderFooterView>
- EJB3.0开发指南:实体Bean的继承:每类一表策略
- 自学iOS开发系列----OC(继承)
- Atitit.业务系统的新特性 开发平台 新特性的来源总结
- JAVA三大特性之二---继承
- C++特性的C语言实现(1)继承