sql >> Database >  >> RDS >> Mysql

Opgegeven sleutel was te lang; maximale sleutellengte is 767 bytes - ASPNet Identity MySQL

Ik heb het antwoord zelf gevonden.

Het probleem had te maken met de gebruikersnaam en het e-mailadres in de gebruikerstabel. En dan de Naam in de Rollentabel.

Ik heb een maximale lengte toegevoegd voor alle drie in mijn IdentityModel-klasse. Hier is het:

    [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, en het toevoegen van het DbConfigurationType to be MySQL lost het probleem met de migratiegeschiedenistabel op (ik wist dit al).

Ongelukkige musefan




  1. Datawarehousing ETL-gegevensprofilering met Oracle Warehouse Builder

  2. Secties van Mysql-configuratiebestanden

  3. PostgreSQL retourneert een functie met een aangepast gegevenstype

  4. Hoe worden categorieën en subcategorieën voor WooCommerce opgeslagen in DB?