EF5 uno a uno sin navegación

Estoy tratando de hacer una relación uno a uno, con la propiedad de navegación solo en un lado (MVC4, EF5, primero el código).

public class User {

  public int UserId { get; set; } //PK

  public int RankId { get; set; } //FK

  public virtual Rank { get; set; } //Navigation

}

public class Rank {

  public int RankId { get; set; }

}

Configuración:

 public class RankConfiguration : EntityTypeConfiguration<Rank>
{
    public RankConfiguration()
    {
      HasKey(e => e.RankId);
      Property(e => e.RankId)
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
    }
}

public class UserConfiguration : EntityTypeConfiguration<User>
{
    public UserConfiguration ()
    {
      // PK
      HasKey(e => e.UserId);

      Property(e => e.RankId)
        .IsRequired();

      HasRequired(e => e.Rank)
        .WithRequiredDependent()
        .WillCascadeOnDelete(true);
    }
}

Por lo que veo (y por lo poco que sé), db se genera correctamente, pero recibo este error:

Una propiedad dependiente en una referencia referencial se asigna a una columna generada por la tienda. Columna: 'UserId'.

En un primer intento, estaba pensando en crear una tabla de unión (ref. AquíEF5 Fluent API uno a uno sin navegador), no sé si fue una buena idea pero no pude hacerlo con una API fluida.

No tengo idea de por qué y qué está mal ... ¿alguna ayuda? Muchas gracias de antemano

ACTUALIZAR

Primer intento Después@soadyp Comentario, traté de configurar un uno a uno con una tabla de unión

HasRequired(e => e.Rank)
    .WithRequiredDependent()
    .Map(m =>
    {
      m.ToTable("UserRank");
      m.MapKey("RankId");
    })
    .WillCascadeOnDelete(true);

pero me sale este error cuando intento migrar:

The specified table 'UserRank' was not found in the model. 
Ensure that the table name has been correctly specified.

Segundo intento Probablemente estoy haciendo un trabajo simple demasiado complicado, después de leer estohttp://weblogs.asp.net/manavi/archive/2011/04/14/associations-in-ef-4-1-code-first-part-3-shared-primary-key-associations.aspx Acabo de cambiar de esta manera

  HasRequired(e => e.Rank)
    .WithOptional()
    .WillCascadeOnDelete(true);

Todo está bien, PERO el UserId PK no se configuró como Identidad (con problemas obvios cuando inserto una fila). Si lo especifico como Identidad:

  Property(e => e.UserId)
    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

Obtuve el siguiente error:

Cascading foreign key 'FK_dbo.Users_dbo.Ranks_UserId' cannot be created where 
the referencing column 'Users.UserID' is an identity column.
Could not create constraint. See previous errors.

Respuestas a la pregunta(2)

Su respuesta a la pregunta