Dengan memeriksa kueri SQL yang dihasilkan oleh EF, saya menemukan bahwa masalahnya terkait dengan UserName (varchar utf8 256) di tabel AspNetUsers dan Name (varchar utf8 256) di tabel AspNetRoles, sedangkan tabel untuk HistoryRow baik-baik saja.
Jadi kode berikut menyelesaikan masalah.
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();
}
}
Untuk memperjelas solusinya, inilah perpustakaan yang saya gunakan:
- EF 6.1.0
- Microsoft ASP.NET Identity EntityFramework 2.0.0
- ASP.NET Identity Owin 2.0.0
- Perpustakaan MySql .NET 6.8.3
Dan solusi ini juga berfungsi untuk
- EF 6.1.1
- Microsoft ASP.NET Identity EntityFramework 2.0.1
- ASP.NET Identity Owin 2.0.1