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

.NET Core 2.0 với MySQL:Khóa được chỉ định quá dài; độ dài khóa tối đa là 3072 byte

Tôi chỉ muốn thêm vào câu trả lời @neville, để bất kỳ ai khác có giải pháp với gói nuget MySql.Data.EntityFrameworkCore mặc định.

bạn cần thêm độ dài tối đa của các khóa sau vào dbcontext OnModelCreating của bạn và sau đó chạy phần bổ trợ để có hiệu lực.

có một mẫu được tạo tại đây https://github.com/k-siddharatha/DotNetCoreEFMySql

chỉ cho vấn đề này.

ghi đè
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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump vấn đề với lỗi khôi phục:'Vui lòng NGẮT không gian bảng trước khi NHẬP'

  2. Việc giảm một bảng trong MySQL cũng làm giảm các chỉ mục?

  3. MySQL - THAM GIA a HOẶC b

  4. Truy vấn sử dụng group_concat chỉ trả về một hàng

  5. Không thể tìm nạp dữ liệu từ cơ sở dữ liệu vào thẻ tập lệnh trong khi sử dụng biểu đồ