EFによって生成されたSQLクエリを確認したところ、問題はテーブルAspNetUsersのUserName(varchar utf8 256)とテーブルAspNetRolesのName(varchar utf8 256)に関連していることがわかりましたが、HistoryRowのテーブルは問題ありませんでした。
したがって、次のコードで問題が解決しました。
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();
}
}
解決策を明確にするために、私が使用しているライブラリは次のとおりです。
- EF 6.1.0
- Microsoft ASP.NET Identity EntityFramework 2.0.0
- ASP.NET Identity Owin 2.0.0
- MySql.NETライブラリ6.8.3
そして、このソリューションは
でも機能します- EF 6.1.1
- Microsoft ASP.NET Identity EntityFramework 2.0.1
- ASP.NET Identity Owin 2.0.1