sql >> Database teknologi >  >> RDS >> Mysql

.NET Core 2.0 med MySQL:Den angivne nøgle var for lang; max nøglelængde er 3072 bytes

Jeg ville bare tilføje til @neville-svaret, så alle andre kan tage en løsning med standard MySql.Data.EntityFrameworkCore nuget-pakke.

du skal tilføje den maksimale længde af følgende nøgler i din dbcontext OnModelCreating og derefter køre tilføjelsesmigrering for at træde i kraft.

få lavet en prøve herhttps://github.com/k-siddharatha/DotNetCoreEFMySql

kun for dette spørgsmål.

protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);


            builder.Entity<IdentityUser>(entity => entity.Property(m => m.Id).HasMaxLength(85));
            builder.Entity<IdentityUser>(entity => entity.Property(m => m.NormalizedEmail).HasMaxLength(85));
            builder.Entity<IdentityUser>(entity => entity.Property(m => m.NormalizedUserName).HasMaxLength(85));

            builder.Entity<IdentityRole>(entity => entity.Property(m => m.Id).HasMaxLength(85));
            builder.Entity<IdentityRole>(entity => entity.Property(m => m.NormalizedName).HasMaxLength(85));

            builder.Entity<IdentityUserLogin<string>>(entity => entity.Property(m => m.LoginProvider).HasMaxLength(85));
            builder.Entity<IdentityUserLogin<string>>(entity => entity.Property(m => m.ProviderKey).HasMaxLength(85));
            builder.Entity<IdentityUserLogin<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(85));
            builder.Entity<IdentityUserRole<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(85));

            builder.Entity<IdentityUserRole<string>>(entity => entity.Property(m => m.RoleId).HasMaxLength(85));

            builder.Entity<IdentityUserToken<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(85));
            builder.Entity<IdentityUserToken<string>>(entity => entity.Property(m => m.LoginProvider).HasMaxLength(85));
            builder.Entity<IdentityUserToken<string>>(entity => entity.Property(m => m.Name).HasMaxLength(85));

            builder.Entity<IdentityUserClaim<string>>(entity => entity.Property(m => m.Id).HasMaxLength(85));
            builder.Entity<IdentityUserClaim<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(85));
            builder.Entity<IdentityRoleClaim<string>>(entity => entity.Property(m => m.Id).HasMaxLength(85));
            builder.Entity<IdentityRoleClaim<string>>(entity => entity.Property(m => m.RoleId).HasMaxLength(85));
        }


  1. Hvordan kan jeg fylde en kolonne med tilfældige tal i SQL? Jeg får den samme værdi i hver række

  2. Problemer med int(11) datatype i MYSQL

  3. MySQL:sammenligning af heltalsværdi og strengfelt med indeks

  4. Hvordan får jeg SUM-funktionen i MySQL til at returnere '0', hvis der ikke findes nogen værdier?