How to map database table to a model using complex/nested properties in EF Core

I have an ASP .Net Core 3.1 Web API. I'm using EF Core (and the Pomelo data provider) to connect to a MySql database.

In the database I have a very simple "person" table, with no foreign contraints or joins or anything. Just a very simple, flat table. In my web API, I have a corresponding model:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Surname { get; set; }
    public string StreetNumber { get; set; }
    public string Street { get; set; }
    public string Suburb { get; set; }
    public string City { get; set; }
    public string Province { get; set; }
}

and in my dbContext I map the model to the database table:

public virtual DbSet<Person> People { get; set; }

modelBuilder.Entity<Person>(entity =>
        {
            entity.HasKey(e => e.Id)
                .HasName("PRIMARY");

            entity.ToTable("person");

            entity.Property(e => e.Id)
                .HasColumnName("id")
                .HasColumnType("int(11)");

            entity.Property(e => e.Name)
                .HasColumnName("name")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.Surname)
                .HasColumnName("surname")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.StreetNumber)
                .HasColumnName("street_number")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.Street)
                .HasColumnName("street")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.Suburb)
                .HasColumnName("suburb")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.City)
                .HasColumnName("city")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.Province)
                .HasColumnName("province")
                .HasColumnType("varchar(45)");

Now, I'd like to change my model to look like this:

public class Address
{
    public string StreetNumber { get; set; }
    public string Street { get; set; }
    public string Suburb { get; set; }
    public string City { get; set; }
    public string Province { get; set; }
}

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Address ResidentialAddress { get; set; }
}

My database table remains as is. I would only like to change the model. So now I update the dbContext accordingly:

public virtual DbSet<Person> People { get; set; }

modelBuilder.Entity<Person>(entity =>
        {
            entity.HasKey(e => e.Id)
                .HasName("PRIMARY");

            entity.ToTable("person");

            entity.Property(e => e.Id)
                .HasColumnName("id")
                .HasColumnType("int(11)");

            entity.Property(e => e.Name)
                .HasColumnName("name")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.Surname)
                .HasColumnName("surname")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.ResidentialAddress.StreetNumber)
                .HasColumnName("street_number")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.ResidentialAddress.Street)
                .HasColumnName("street")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.ResidentialAddress.Suburb)
                .HasColumnName("suburb")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.ResidentialAddress.City)
                .HasColumnName("city")
                .HasColumnType("varchar(45)");

            entity.Property(e => e.ResidentialAddress.Province)
                .HasColumnName("province")
                .HasColumnType("varchar(45)");

And it gives me this exception:

System.ArgumentException: The expression 'e => e.ResidentialAddress.StreetNumber' is not a valid property expression. The expression should represent a simple property access: 't => t.MyProperty'. (Parameter 'propertyAccessExpression')

Now i get why it's complaining, but I'm not sure how to fix it, if it's even possible to fix? I did google around, and see that in .Net Core 2.1 they added an [Owned] decorator, which I played with, but didn't help. I think I actually misunderstood the purpose of that decorator.

I would greatly appreciate any suggestions. Thank you.