¿Cómo DbContext inicializa las propiedades automáticas DbSet <T>?

Considere la siguiente clase:

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

e instanciando un nuevo objeto:

var mycontext = new MyContext();

¿Por qué mycontext.Orders no es nulo? ¿Cuándo se inicializó? ¿Quién lo ha inicializado? Estoy realmente confundido porque la clase base (DbConetxt) no puede acceder a las propiedades de clase derivadas, por lo que no es posible que la propiedad automática se haya inicializado en el objeto base.

Respuestas a la pregunta(1)

Su respuesta a la pregunta