sql >> データベース >  >> RDS >> Mysql

MySQLを使用した.NETCore2.0:指定されたキーが長すぎました。キーの最大長は3072バイトです

    @nevilleの回答に追加したかったのですが、他の誰かがデフォルトのMySql.Data.EntityFrameworkCorenugetパッケージで解決策を講じることができます。

    dbcontext OnModelCreatingに次のキーの最大長を追加してから、add-migrationを実行して有効にする必要があります。

    ここでサンプルを作成してください https://github.com/k-siddharatha/DotNetCoreEFMySql

    この問題のためだけに。

    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. 行を返さないクエリのデフォルトの行を設定するにはどうすればよいですか?

    2. MySQLはすべての重複を一覧表示します

    3. Oracleの互換性レベルを確認する2つの方法(SQLclおよびSQL * Plus)

    4. MySQL WHERE IN()