MySQL Entity Framework 未创建表

MySQL Entity Framework Tables are not created

遵循本指南:http://www.asp.net/identity/overview/getting-started/aspnet-identity-using-mysql-storage-with-an-entityframework-mysql-provider 我试图使用 Entity Framework.
建立到我的 MySQL 数据库的连接 连接成功,但每当我 运行 我的代码时,我都会收到以下错误:

MySql.Data.MySqlClient.MySqlException: Table 'helpcontext.users' doesn't exist

我的上下文 class 看起来像这样:

[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class HelpContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Channel> Channels { get; set; }
    public DbSet<ChatMessage> ChatMessages { get; set; }
    public DbSet<Question> Questions { get; set; }
    public DbSet<QuestionComment> QuestionComments { get; set; }

    public HelpContext() : base()
    {
        Database.SetInitializer(new MySqlInitializer());
    }
}

我的 "MySQLInitializer" class 看起来像这样:

public class MySqlInitializer : IDatabaseInitializer<HelpContext>
{
    public void InitializeDatabase(HelpContext context)
    {
        if (!context.Database.Exists())
        {
            // if database did not exist before - create it
            context.Database.Create();
        }
        else
        {
            // query to check if MigrationHistory table is present in the database 
            var migrationHistoryTableExists = ((IObjectContextAdapter)context).ObjectContext.ExecuteStoreQuery<int>(
            string.Format(
              "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '{0}' AND table_name = '__MigrationHistory'",
              "helpcontext"));

            // if MigrationHistory table is not there (which is the case first time we run) - create it
            if (migrationHistoryTableExists.FirstOrDefault() == 0)
            {
                context.Database.Delete();
                context.Database.Create();
            }
        }
    }
}

架构在 mysql 实例上创建正常,但没有创建任何表,导致应用程序因上述错误而崩溃。 知道我做错了什么吗?

编辑: 事实证明,问题来自于较早的尝试,即针对未创建表的原始问题遵循其他解决方案。 我在上下文中有这段代码 class

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<User>().MapToStoredProcedures();
        modelBuilder.Entity<Channel>().MapToStoredProcedures();
        modelBuilder.Entity<ChatMessage>().MapToStoredProcedures();
        modelBuilder.Entity<Question>().MapToStoredProcedures();
        modelBuilder.Entity<QuestionComment>().MapToStoredProcedures();
    }

事实证明那很糟糕。从我的 class 中删除方法解决了这个问题。

原来我的代码中还有另一个问题。有关详细信息,请参阅编辑。