EntityFramework 6 + MySQL:不会自动创建模型表

时间:2014-02-13 12:54:10

标签: c# mysql sql entity-framework asp.net-mvc-4

我尝试使用EF6和MySQL。我确信我与数据库的连接正常,因为存在首选的数据库模式。但是,只存在__migration表。

我有以下代码

我的模特

[Table("my_model")]
public class ModelA
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ModelAId { get; set; }

    public string ModelAProperty { get; set; }
}

我的DBContext

public class ModelAContext : DbContext
{
    public ModelAContext() : base("DefaultConnection")
    {

    }

    static ModelAContext()
    {
        Database.SetInitializer( new DropCreateDatabaseIfModelChanges<ModelAContext>());
    }

    public DbSet<ModelA> MyModels { get; set; } 
}

我的初始化程序

// Assuming this is run during the application initialization
    public static void InitializeDB()
    {
        using (var context = new ModelAContext())
        {
            if (!context.Database.Exists())
            {
                // Create the SimpleMembership database without Entity Framework migration schema
                ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
            }
            context.Database.CreateIfNotExists();
        }
    }

未创建ModelA的相应表。 我总是得到一个MySQL异常,其中一个表(在这种情况下是app.my_model)不存在。

非常感谢任何帮助。

P.S。如果您有任何可以在ASP.NET MVC4中设置我的MySQL和EF6的好教程,那就太棒了。截至目前,我似乎无法使用MVC4的WebSecurity助手。

1 个答案:

答案 0 :(得分:1)

在Global.asax和

  AppDbContext db = new AppDbContext();
            db.Database.Initialize(true);