Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khóa được chỉ định quá dài; độ dài khóa tối đa là 767 byte - ASPNet Identity MySQL

Tôi đã tự tìm ra câu trả lời.

Vấn đề là do Tên người dùng và Email trong bảng Người dùng. Và sau đó là Tên trong bảng Vai trò.

Tôi đã thêm độ dài tối đa cho cả ba trong lớp IdentityModel của mình. Đây rồi:

    [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);
        }
    }
}

Ồ, và thêm DbConfigurationType để được MySQL sắp xếp vấn đề bảng lịch sử di chuyển (tôi đã biết điều này).

Người hâm mộ không may mắn




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sử dụng trạng thái mysql LOAD trong PHP không thành công, nhưng thực hiện nó thông qua dòng lệnh hoạt động

  2. MySQL Inner Join bảng dựa trên giá trị cột

  3. Cách tự động tăng 2 cho một bảng cụ thể trong mysql

  4. Danh sách các thủ tục / hàm được lưu trữ Dòng lệnh Mysql

  5. mysqldump với utf8 không thể xuất chuỗi biểu tượng cảm xúc phù hợp