c# - Entity Framework 6 + MySQL : Model tables are not created automatically

标签 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; }
}

我的数据库上下文

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)不存在。

任何帮助将不胜感激。

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

最佳答案

在您的 Global.ascx 广告中

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

关于c# - Entity Framework 6 + MySQL : Model tables are not created automatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754843/

相关文章:

c# - 努特 3 : Test a Controller that uses IHttpClientFactory as Constructor Parameter

c# web api - 使用 HTTPS 运行 web 应用程序 - 添加证书并启用 SSL 但连接被拒绝

c# - 迁移ASP.NET MVC3的数据库文件

c# - 游戏编程 - 二维游戏对象之间的通信

java - JTable 不从 MySQL 填充数据

mysql - 使用 Zend Framework 和 PDO Adapter 加载数据本地 Infile

mysql - 将查询 mysql 更新为 VB.net

php - 带计数的sql请求

sql - Postgres 转储选定的行

mysql - 如何根据 SQL 中的条件选择组中的一行?