Usando a entidade muitos para muitos e um para muitos na mesma entidade

Tenho uma associação muitos para muitos no EF Code-First (como explicado emest question), e também quero usar um para muitos na mesma entidade. O problema é que o EF não produz o esquema de banco de dados correto. Código

public class A
{
  public int Id { get; set; }
  public string Name { get; set; }
  public virtual ICollection<B> ObjectsOfB { get; set; }
}

public class B
{
  public int Id { get; set; }
  public virtual A ObjectA { get; set; }
  public virtual ICollection<A> OtherObjectsOfA { get; set; }
}

Quando removo a propriedade ObjectA da classe B, a associação muitos-para-muitos é gerada corretamente. Quando gerada incorretamente, a entidade B obtém 2 chaves estrangeiras em A e a entidade A obtém 1 chave estrangeira em B (como uma relação muitos-para-um

questionAnswers(2)

yourAnswerToTheQuestion