EF-Code primer tipo complejo con una propiedad de navegación

Mi modelo

public class Country
{
    public int CountryId { get; set; }
    public string Name { get; set; }

    public virtual ICollection<User> Users { get; set; }
}

public class Location
{
    public string Address { get; set; }

    public virtual int CountryId { get; set; }
    public virtual Country Country { get; set; }
}    

public class User{

    protected User()
    {
        Location = new Location();
    }

    public int UserId { get; set; }
    public Location Location { get; set; }

}

Al generar la base de datos, obtengo:

One or more validation errors were detected during model generation:

System.Data.Edm.EdmEntityType: : EntityType 'Location' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet �Locations� is based on type �Location� that has no keys defined.

¿Cómo tengo una propiedad de navegación dentro de un tipo complejo? Si elimino la propiedad de navegación del país, funciona bien.

Respuestas a la pregunta(2)

Su respuesta a la pregunta