@Entity Framework (4.2) resultou em resultados inesperados de junção externa esquerda esquerda

Parece que o Entity Framework (versão mais recente do NuGet) pode estar ignorando a configuração HasRequired ao construir junções para Propriedades de Navegação diferentes da primeira definid

Por exemplo, dado um objeto POCO (Person) com a seguinte configuração:

var person = modelBuilder.Entity<Person>();
person.ToTable("The_Peoples");
person.HasKey(i => i.Id);
person.Property(i => i.Id).HasColumnName("the_people_id");
person.HasRequired(i => i.Address)
    .WithMany()
    .Map(map => map.MapKey("address_id"));
person.HasRequired(i => i.WorkPlace)
    .WithMany()
    .Map(map => map.MapKey("work_place_id"));

Estou tentando carregar uma lista de pessoas com a seguinte consulta:

myContext.Set<People>()
    .Include(o => o.Address)
    .Include(o => o.WorkPlace);

@Entity Framework gera a seguinte consulta:

FROM  [dbo].[The_Peoples] AS [Extent1]
INNER JOIN [dbo].[The_Addresses] AS [Extent2] ON [Extent1].[address_id] = [Extent2].[address_id]
LEFT OUTER JOIN [dbo].[The_Work_Places] AS [Extent3] ON [Extent1].[work_place_id] = [Extent3].[work_place_id]

Observe que a junção à tabela * The_Addresses * é uma junção interna (conforme o esperado), no entanto, a junção subsequente ao * The_Work_Places * é uma junção externa. Dado que as propriedades Address e WorkPlace estão marcadas como necessárias, eu esperaria que ambas as junções fossem junções internas. Também tentei marcar as propriedades Address e WorkPlace com o atributo Required, mas isso não teve efeit

Isso é um bug ou talvez eu esteja configurando algo incorretamente? Sugestões?

questionAnswers(2)

yourAnswerToTheQuestion