sql >> Database >  >> RDS >> Mysql

.NET Core 2.0 met MySQL:opgegeven sleutel was te lang; maximale sleutellengte is 3072 bytes

Ik wilde gewoon toevoegen aan @neville antwoord, zodat iemand anders een oplossing kan nemen met het standaard MySql.Data.EntityFrameworkCore nuget-pakket.

u moet de maximale lengte van de volgende sleutels toevoegen aan uw dbcontext OnModelCreating en vervolgens add-migratie uitvoeren om van kracht te worden.

laat hier een voorbeeld makenhttps://github.com/k-siddharatha/DotNetCoreEFMySql

alleen voor dit probleem.

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. Maximale grootte voor een SQL Server-query? IN clausule? Is er een betere aanpak?

  2. Meerdere kolommen bijwerken in PostgreSQL

  3. Microsoft kondigt SQL Server 2012 R2 en SQL Server 2012 R3 aan!

  4. Laravel classloader.php-fout kan stream niet openen:geen bestand of map