[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值