Mysql
 sql >> Base de données >  >> RDS >> Mysql

La clé spécifiée était trop longue ; la longueur maximale de la clé est de 767 octets - ASPNet Identity MySQL

J'ai trouvé la réponse moi-même.

Le problème était lié au nom d'utilisateur et à l'e-mail dans la table des utilisateurs. Et puis le Nom dans le tableau Rôle.

J'ai ajouté une longueur maximale pour les trois dans ma classe IdentityModel. Le voici :

    [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);
        }
    }
}

Oh, et en ajoutant le DbConfigurationType être MySQL résout le problème de la table d'historique de migration (je le savais déjà).

Musefan malchanceux