sql >> Databasteknik >  >> RDS >> Mysql

Den angivna nyckeln var för lång; max nyckellängd är 767 byte - ASPNet Identity MySQL

Jag hittade svaret själv.

Problemet var att göra med användarnamn och e-post i användartabellen. Och sedan Namnet i Rolltabellen.

Jag lade till en maxlängd för alla tre i min IdentityModel-klass. Här är den:

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

Åh, och lägga till DbConfigurationType att vara MySQL löser problemet med migreringshistoriktabellen (jag visste redan detta).

Otur musefan




  1. Hur man ändrar kolumndatatyp från tecken till numerisk i PostgreSQL 8.4

  2. Hur kopierar man en rad och infogar i samma tabell med ett autoinkrementfält i MySQL?

  3. Liquibase lås - anledningar?

  4. Få åtkomst till data från servlet