Como DbContext inicializa propriedades DbSet <T> automáticas?

Considere a seguinte classe:

class MyContext : DbContext
{
    public DbSet<Order> Orders { get; set; }
}

e instanciando um novo objeto:

var mycontext = new MyContext();

Por que mycontext.Orders não é nulo? Quando foi inicializado? Quem inicializou? Estou realmente confuso porque a classe base (DbConetxt) não pode acessar as propriedades da classe derivada, portanto, não é possível que a propriedade automática tenha sido inicializada no objeto base.