C # - La clave externa hace referencia a una tabla no válida - La migración básica no funciona

Tratando de hacer mi primer proyecto en C #. Sin embargo, es muy frustrante hasta ahora. Este es un problema que no puedo resolver, ya que no veo nada malo.

Estoy tratando de hacer una simple migración en mi base de datos.

Archivo de migración de usuarios

 public override void Up()
        {
            CreateTable(
                "dbo.Users",
                c => new
                    {
                        user_id = c.Int(nullable: false, identity: true),
                        first_name = c.String(),
                        last_name = c.String(),
                        email = c.String(),
                        role = c.String(),
                    })
                .PrimaryKey(t => t.user_id);
        }

Archivo de migración de ubicaciones

 public override void Up()
        {
            CreateTable(
                "dbo.Locations",
                c => new
                {
                    loc_id = c.Int(nullable: false, identity: true),
                    loc_name = c.String(),
                })
            .PrimaryKey(t => t.loc_id);

            CreateTable(
                "dbo.UserLoc",
                c => new
                {
                    ul_id = c.Int(nullable: false, identity: true),
                    fk_user_id = c.Int(nullable: false),
                    fk_loc_id = c.Int(nullable: false),
                })
            .PrimaryKey(t => t.ul_id);
            AddForeignKey("dbo.UserLoc", "fk_user_id", "dbo.Users", "user_id");
            AddForeignKey("dbo.UserLoc", "fk_loc_id", "dbo.Locations", "loc_id");
        }

Modelos:

User.cs

public class User
{
    [Key]
    public int user_id { get; set; }

    public string firs_tname { get; set; }
    public string last_name { get; set; }
    public string email { get; set; }
    public string role { get; set; }
}

Location.cs

public class Locations
{
    [Key]
    public int loc_id { get; set; }
    public int loc_name { get; set; }
}

UserLoc.cs

public class UserLoc
{
    [Key]
    public int ul_id { get; set; }

    [ForeignKey("Users")]
    public int fk_user_id { get; set; }
    public virtual User user { get; set; }

    [ForeignKey("Locations")]
    public int fk_location_id { get; set; }
    public virtual Locations location { get; set; }
}

Cada vez que quiero migrar me sale el mismo error

La clave externa 'FK_dbo.UserLoc_dbo.Users_fk_user_id' hace referencia a la tabla no válida 'dbo.Users'. No se pudo crear restricción o índice. Ver errores anteriores.

¿Qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta