When encountering the “Multiple levels of many-to-one relationship expansion aren’t supported” message in a canvas app, here are the cause and solution.
Accessing Parent Records
When working with Dataverse in canvas apps, you can access parent table information using the “.” (dot) notation.



While this is quite convenient, attempting to access the parent’s parent table results in the error “Multiple levels of many-to-one relationship expansion aren’t supported”.
Multiple Level Expansion


Unfortunately, the “.” notation can only access one level up in the table hierarchy, so let’s explore some workarounds.
Solution 1: Using the LookUp Function
The first solution is to use the LookUp function.


Solution 2: Using Formula Columns

The following information is outdated and for reference only.
+++ Legacy Article Start +++
Another solution is to add a calculated column to the “Cat” table.



While using the LookUp function allows access to all parent information without adding new columns, it generates Dataverse access for each item when displayed in galleries, which might impact performance.
In contrast, using calculated columns requires adding columns for each piece of needed information (and only works with supported data types), but the parent access is handled by Dataverse (presumably), making it less likely to impact performance (presumably).
The choice between these methods depends on the specific situation.
Another option is to add a lookup column to the “Meal History” table referencing the “Owner” table, but this also creates data redundancy, so it’s situation-dependent.
コメント