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

指定されたキーが長すぎました。キーの最大長は767バイトです-ASPNetIdentityMySQL

    自分で答えを見つけました。

    問題は、UserテーブルのUserNameとEmailに関係していました。次に、RoleテーブルのName。

    IdentityModelクラスの3つすべてに最大長を追加しました。ここにあります:

        [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
        public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
        {
            public ApplicationDbContext()
                : base("CaptureDBContext", throwIfV1Schema: false)
            {
            }
    
            public static ApplicationDbContext Create()
            {
                return new ApplicationDbContext();
            }
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
                modelBuilder.Entity<ApplicationUser>().Property(u => u.UserName).HasMaxLength(255);
                modelBuilder.Entity<ApplicationUser>().Property(u => u.Email).HasMaxLength(255);
                modelBuilder.Entity<IdentityRole>().Property(r => r.Name).HasMaxLength(255);
            }
        }
    }
    

    ああ、DbConfigurationTypeを追加します MySQLになると、移行履歴テーブルの問題が解決されます(私はすでにこれを知っていました)。

    不運なミューズファン




    1. #1242-サブクエリが複数の行を返す-mysql

    2. MySQLのインストール:エラー:gemネイティブ拡張のビルドに失敗しました

    3. SQLの1行で2つの異なる行を更新します

    4. 結合基準またはより効率的なwhere句のSQLフィルター基準