为什么 Dynamics AX 2012 中子角色的最大深度是 3?

Why is the maximum depth of sub-roles 3 in Dynamics AX 2012?

考虑一个附加了子角色的自定义安全角色。这些子角色也有子角色。如果它们链接太多次,您将收到一个编译器错误:

The role has too many levels of sub-roles. The maximum sub-role depth is 3.

为什么最大子角色深度是3,不修复错误会有什么后果?

我认为错误是因为您可以创建循环引用。

当您达到一定深度并结合许多节点时,检查循环引用的数学运算会变得荒谬并且性能很重。

此外,我猜想 AX 使用树遍历来检查安全性,它可能会对遍历大量节点的性能产生影响。