sql >> Database >  >> RDS >> Mysql

Identiteitsfout (bij aanmaak database) opgegeven sleutel was te lang

Door de SQL-query's te controleren die door EF werden gegenereerd, had ik ontdekt dat het probleem te maken had met UserName (varchar utf8 256) in tabel AspNetUsers en Name (varchar utf8 256) in tabel AspNetRoles, terwijl de tabel voor HistoryRow in orde was.

Dus de volgende codes hebben het probleem opgelost.

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


}

Om de oplossing te verduidelijken, zijn hier de bibliotheken die ik gebruik:

  1. EF 6.1.0
  2. Microsoft ASP.NET Identity EntityFramework 2.0.0
  3. ASP.NET-identiteit Owin 2.0.0
  4. MySql .NET-bibliotheken 6.8.3

En deze oplossing werkt ook voor

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


  1. HTML-tags uit record verwijderen

  2. PhalconPHP-database sluit zich aan bij ORM

  3. Hoe stel ik ASP.NET MVC 2 in met MySQL?

  4. Door de mysql-database bladeren