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

Lỗi nhận dạng (khi tạo cơ sở dữ liệu) khóa được chỉ định quá dài

Thông qua việc kiểm tra các truy vấn SQL được tạo bởi EF, tôi nhận thấy rằng sự cố liên quan đến Tên người dùng (varchar utf8 256) trong bảng AspNetUsers và Tên (varchar utf8 256) trong bảng AspNetRoles, trong khi bảng cho HistoryRow vẫn ổn.

Vì vậy, các mã sau đã giải quyết được sự cố.

    public class WebPortalDbContext : IdentityDbContext<ApplicationUser>
{
    public WebPortalDbContext()
        : base("IdentityConnection")
    {

    }

    public static WebPortalDbContext Create()
    {
        return new WebPortalDbContext();
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>()
            .Property(c => c.Name).HasMaxLength(128).IsRequired();

        modelBuilder.Entity<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>().ToTable("AspNetUsers")//I have to declare the table name, otherwise IdentityUser will be created
            .Property(c => c.UserName).HasMaxLength(128).IsRequired();
    }


}

Để làm rõ giải pháp, đây là các thư viện tôi đang sử dụng:

  1. EF 6.1.0
  2. Microsoft ASP.NET Identity EntityFramework 2.0.0
  3. ASP.NET Identity Owin 2.0.0
  4. Thư viện MySql .NET 6.8.3

Và giải pháp này cũng hoạt động cho

  1. EF 6.1.1
  2. Microsoft ASP.NET Identity EntityFramework 2.0.1
  3. ASP.NET Identity Owin 2.0.1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách khắc phục (2002, Không thể kết nối với máy chủ MySQL cục bộ thông qua socket '/tmp/mysql.sock' (2)) trên bitnami ec2?

  2. Khi sử dụng Entity Framework với MySQL, các ký tự Unicode được thay thế bằng các ký tự cơ bản

  3. Khóa ngoại MySQL - làm thế nào để thực thi 1-1 trên các bảng?

  4. Làm cách nào để tìm bản ghi trước đó [n-per-group max (timestamp) <timestamp]?

  5. MySQL để điền vào các ngày còn thiếu khi sử dụng GROUP BY DATE (table.timestamp) mà không cần tham gia vào bảng tạm thời