sql >> Databáze >  >> RDS >> Mysql

.NET Core 2.0 s MySQL:Zadaný klíč byl příliš dlouhý; maximální délka klíče je 3072 bajtů

Jen jsem chtěl přidat k odpovědi @neville, aby kdokoli jiný vzal řešení s výchozím balíčkem MySql.Data.EntityFrameworkCore nuget.

musíte do dbcontext OnModelCreating přidat maximální délku následujících klíčů a poté spustit add-migration, aby se projevila.

zde si nechte vytvořit ukázkuhttps://github.com/k-siddharatha/DotNetCoreEFMySql

právě pro tento problém.

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. PostgreSQL vs. MySQL:Co je nejlepší?

  2. Aktualizace hodnoty AUTO_INCREMENT všech tabulek v databázi MySQL

  3. Jak dekódovat hex bajtového sloupce PostgreSQL na int16/uint16 v r?

  4. jiskra čtení dat z mysql paralelně