EF Core & multilevel access

My today's task was to fetch data from three different tables via Entity Framework Core - if you're wondering how this can be done - I'm gonna show it to you with a real-life scenario. First, let me introduce the context and four C# classes that are involved (I'm including the relevant properties only):

public partial class TUser
    {
        public int AddressId { get; set; }
/* .. */
        public virtual TAddress Address { get; set; }
/* .. */
    }

public partial class TAddress
    {
        public int AddressId { get; set; }
/* .. */
        public int CountryId { get; set; }
        public int RegionId { get; set; }
/* .. */

        public virtual TAddressCountry Country { get; set; }
        /* .. */
        public virtual TAddressRegion Region { get; set; }
    }

public partial class TAddressCountry
    {  
public int CountryId { get; set; }
        public string Name { get; set; }
    }

public partial class TAddressRegion
    {  
public int RegionId { get; set; }
        public string Name { get; set; }
    }

To picture it better I decided to draw a diagram which shows proper relationships between the tables.

efcore mm

To get my list of users along with country and region names we have to incorporate both Include and ThenInclude extension methods. Include is enough when we want to query tUser table in order to get data from tAddress, however, it doesn't mean we get info on Country or Region. To get this information we need to go deeper through relationships and use ThenInclude method and in my scenario, I had to go deeper twice (Include.ThenInclude + Include.ThenInclude).

As a result I was able to fetch proper data via my API using Postman:

efcore postman