ExpandTablesDepth
Specifies how deeply the provider explores nested child tables in the GraphQL schema when building the relational model. This setting only takes effect if the ExposeObjectTables property is set to DEEP.
Data Type
int
Default Value
2
Remarks
The ExpandTablesDepth property determines how many levels of nested objects are converted into separate child tables in the relational model. This property controls the granularity of the resulting schema by defining whether nested objects beyond a certain level are exposed as individual tables or remain part of a parent table.
Example Schema
For example, consider the following GraphQL schema:
type Query {
companies: [Company]
}
type Company {
id: ID!
name: String
details: [Details]
}
type Details {
state: String
addresses: [Address]
}
type Address {
city: String
state: String
}
Nesting Levels
In this schema, the nesting levels are as follows:
| Level 0: Company | Exposed by the root query. |
| Level 1: Details | A list within Company. |
| Level 2: Address | A list within Details. |
- If ExpandTablesDepth is set to 0, the driver exposes a table for companies.
- If ExpandTablesDepth is set to 1, the driver exposes a table for details.
- If ExpandTablesDepth is set to 2, the driver exposes a table for addresses.
Performance Considerations
Set this property to a higher value if your application needs access to deeply nested data. However, be cautious as increasing this value may result in higher processing times and more complex schema representations.