本文仅供AX从业者和爱好者交流之用,由于原文版权问题,请勿转载。
类Axd的重要功能是可以序列化和反序列化针对AX的XML文档的类实例对象。这些文档的架构(Schemas)通过迭代Query生成,定义架构(Schemas),利用Ax<Table>类的名称和属性命名XML元素。
为Query中每一个表创建<table>元素。这些<table>元素包含一系列相应类<AxTable>的所有属性,这些属性体现为parm<Fieldname> get/set方法。必须遵循命名规范,因为不能通过给X++类字段名和方法赋属性的方式来标志是否可以序列化字段值。在元素展现属性后,内嵌在<table>元素中,是一些列用来呈现Query中定义的子结点的<child-table>元素。如果一个<table>元素不包含子结点,它只包含展现相关的AX<table>类的parm<Fieldname>属性的元素。
注意:Query只能包含一个根级表,包含多个根级表将会导致框架抛出错误并终止执行。
为了实现1:n关系,必须将Query的JoinMode属性设为OuterJoin(译注:当目前为止还不知道为什么,姑且放之)。如果没有特殊的原因使用1:1的关系就保持这种设定(译注:OuterJoin)。在AX中的大多数文档,这种方式是强制的,只有包含InventDim 表的查询用InnerJoin关联条件。