DropCreateDatabaseIfModelChanges

时间:2016-09-07 16:02:59

标签: entity-framework ef-code-first

我正在尝试设置测试环境中使用的初始化程序。从我读到的所有内容中, DropCreateDatabaseIfModelChanges 正是我所需要的。通常情况下,数据库与模型稍微不同步,我需要简单地重新开始。

所以这就是我如何设置我的上下文构造函数

var User = sequelize.define("User", {
  // model definition skipped
}, { 
    freezeTableName: true,
    timestamps: false
});

但是,即使设置了此初始化程序,我仍然会收到错误:

  

"支持" ApplicationContext"自数据库创建以来已更改。考虑使用代码优先迁移进行更新   数据库"

其他一些注意事项:

  1. 我尝试在迁移配置文件中设置public ApplicationContext(int dbID, string username) : base(dbID, username) { Database.SetInitializer<ApplicationContext>(new DropCreateDatabaseIfModelChanges<ApplicationContext>()); Database.Initialize(true); } AutomicMigrationsEnabled = false
  2. 我尝试过使用和不使用强制初始化
  3. 有人遇到同样的问题或有任何想法吗?

    更新 我能够在这里查看System.Data.entity的源代码: https://github.com/hallco978/entityframework/tree/master/src/EntityFramework

    事实证明我需要彻底删除我的Migrations / Configuration.cs文件以防止错误。该配置文件中的设置并不重要。

    我知道遇到问题,因为如果我使用它,我就无法删除数据库。有没有人知道DeleteDatabase是否实际上意味着删除整个数据库或只删除模型创建的表?

0 个答案:

没有答案
相关问题