sql >> Base de Datos >  >> RDS >> Mysql

La clave especificada era demasiado larga; la longitud máxima de la clave es de 767 bytes - ASPNet Identity MySQL

Encontré la respuesta yo mismo.

El problema tenía que ver con el nombre de usuario y el correo electrónico en la tabla de usuarios. Y luego el Nombre en la tabla Rol.

Agregué una longitud máxima para los tres en mi clase IdentityModel. Aquí está:

    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("CaptureDBContext", throwIfV1Schema: false)
        {
        }

        public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<ApplicationUser>().Property(u => u.UserName).HasMaxLength(255);
            modelBuilder.Entity<ApplicationUser>().Property(u => u.Email).HasMaxLength(255);
            modelBuilder.Entity<IdentityRole>().Property(r => r.Name).HasMaxLength(255);
        }
    }
}

Ah, y agregando el DbConfigurationType ser MySQL soluciona el problema de la tabla del historial de migración (ya lo sabía).

musefan desafortunado