【发布时间】:2015-09-24 18:41:41
【问题描述】:
我对使用 MySQL 数据库的 ASP.NET MVC5 应用程序使用数据库优先方法,但我遇到了这个奇怪的错误。 在我的数据库中,我有身份表,但都是小写的,如下所示
但是当我将应用程序发布到我的登台服务器时,它给了我类似“表 'xxx_.AspNetUsers' 不存在”的错误,尽管我的数据库中有该表,但它是小写的(aspnetusers)。奇怪的是,在本地以及 smarterasp.net 上一切正常,但在我的登台服务器上由于某些原因无法正常工作。
已修复:
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//Make sure you add above line
modelBuilder.Entity<ApplicationUser>().ToTable("aspnetusers");
modelBuilder.Entity<IdentityRole>().ToTable("aspnetroles");
modelBuilder.Entity<IdentityUserRole>().ToTable("aspnetuserroles");
modelBuilder.Entity<IdentityUserClaim>().ToTable("aspnetuserclaims");
modelBuilder.Entity<IdentityUserLogin>().ToTable("aspnetuserlogins");
//Don't add IdentityUser ToTable aspnetusers
}
【问题讨论】:
-
你的 Web.config 上有一个名为 LocalMySqlServer 的连接字符串吗?
-
@rkawano 不,我的 web.config 上没有 LocalMySqlServer 我只有默认连接和我的 DbEntities。
-
必须在 IdentityDbContext 类的 OnModelCreating 方法中配置映射。看看stackoverflow.com/a/19577814/1942895
-
@rcompanhoni 谢谢哥们,你能说得更具体点吗?我做了 IdentityRole toTable aspnetroles 和所有 5 个类似的表,它消除了启动错误,但现在当我尝试登录时出现错误,说同样的事情“表 'xxx_.AspNetUsers' 不存在”。跨度>
标签: c# mysql asp.net asp.net-mvc asp.net-mvc-5