使用1:n DeleteActions

尼科

如何将DeleteActions用于1:n表关系?

例子:

Table A ("id")
('foo')
,('bar')
,('blup')

Table B: ("id", "tableAId1", "tableAId2")
(1, 'foo', 'blup')
,(2, 'bar', 'foo')

我在tableB上有两个关系:

TableB:tableAId1 -> TableA:id
TableB:tableAId2 -> TableA:id

如果删除了表A中的“ foo”,则应删除表B中的两个数据集。

我对表A尝试了一个delete-Action,并使用层叠选项引用了表B,导致删除了表B中的数据集1

我在表A上尝试了两个相同的delete-Action,并使用cascade-option引用了表B,导致数据库上的表锁定。

我知道关于delete()表A的覆盖方法,但是如果使用,这是不安全的tableA.doDelete()

扬·凯德森(Jan B.Kjeldsen)

在AX 2009及更早版本中,对表的删除操作仅遵循一种关系(第一个按字母顺序排序)。一个表仅应作为删除操作应用一次。

然后,最好的选择是使用主表delete_from中的delete方法进行自己的级联删除如果执行doDelete,则不会删除子记录。然后就是不要使用该doDelete方法!

在AX 2012中,您明确指定要执行删除操作的关系。如果指定了不同的关系,则可以多次应用同一张表。

这是一个不错的功能,但这是扩展数据类型上的表关系必须终止的原因之一。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章