Mysql Entity Framework问题-指定的密钥太长;最大密钥长度为3072字节

Bob*_*421 6 mysql entity-framework entity-framework-core asp.net-core-mvc asp.net-core-2.0

当我使用此命令时:

$ dotnet ef database update
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

指定的密钥太长;最大密钥长度为3072字节

导致此错误的表是用于用户管理的内置Microsoft表:

CREATE TABLE `AspNetUserLogins` 
(
    `LoginProvider` varchar(767) NOT NULL,
    `ProviderKey` varchar(767) NOT NULL,
    `ProviderDisplayName` text NULL,
    `UserId` varchar(767) NOT NULL,

    PRIMARY KEY (`LoginProvider`, `ProviderKey`),
    CONSTRAINT `FK_AspNetUserLogins_AspNetUsers_UserId` 
        FOREIGN KEY (`UserId`) REFERENCES `AspNetUsers` (`Id`) 
        ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)

我试图将其添加到OnModelCreating

modelBuilder.Entity<Utilisateurs>(entity => entity.Property(m => m.NormalizedEmail).HasMaxLength(200));
modelBuilder.Entity<Utilisateurs>(entity => entity.Property(m => m.NormalizedUserName).HasMaxLength(200));
modelBuilder.Entity<IdentityRole>(entity => entity.Property(m => m.NormalizedName).HasMaxLength(200));
modelBuilder.Entity<IdentityUserLogin<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(200));
modelBuilder.Entity<IdentityUserRole<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(200));
modelBuilder.Entity<IdentityUserRole<string>>(entity => entity.Property(m => m.RoleId).HasMaxLength(200));
modelBuilder.Entity<IdentityUserToken<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(200));
modelBuilder.Entity<IdentityUserClaim<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(200));
modelBuilder.Entity<IdentityRoleClaim<string>>(entity => entity.Property(m => m.RoleId).HasMaxLength(200));
Run Code Online (Sandbox Code Playgroud)

但是,它不再起作用了。

谢谢你的帮助

**编辑**

我也尝试过:

modelBuilder.Entity<IdentityUserLogin<string>>(entity => entity.Property(m => m.LoginProvider).HasMaxLength(200));
modelBuilder.Entity<IdentityUserLogin<string>>(entity => entity.Property(m => m.ProviderKey).HasMaxLength(200));
Run Code Online (Sandbox Code Playgroud)

Dam*_*nov 7

我使用了MySql.Data.EntityFrameworkCore处于预发布状态的官方 MySql 提供程序,并且在迁移方面存在一些问题。然后我更改Pomelo.EntityFrameworkCore.MySql并更新了数据库,没有任何错误。