支持'DMSContext'上下文的模型已更改

时间:2013-04-08 15:33:10

标签: asp.net-mvc entity-framework

我在运行mvc 4应用程序时收到以下错误。

支持' DMSContext'自创建数据库以来,上下文已更改。考虑使用Code First Migrations来更新数据库

我正在针对现有数据库运行我的应用程序,并且不希望每次模型更改时都重新创建数据库。

我在谷歌上找到了很多答案,但没有一个有效。

具体来说,我尝试将以下内容添加到我的global.asax:

Database.SetInitializer<DMSContext>(null);

Database.SetInitializer<DMSContext<Contact>>(null);

在上面,DMSContext是DbContext。 Contact是导致错误发生变化的模型。

我还尝试将以下内容添加到我的上下文类中:

public DMSContext() : base()
          {
             Configuration.AutoDetectChangesEnabled = false;
          }

我所遵循的大部分方向都来自此页面,但没有运气。

The model backing the <Database> context has changed since the database was created

3 个答案:

答案 0 :(得分:2)

虽然您不使用迁移尝试创建一个,但不要运行它,但您将能够看到与数据库的差异。

答案 1 :(得分:2)

如果您正在使用Entity Framework Code First,则建议您在应用程序中启用迁移。为此,see this link

现在每次更改代码中的内容(主要是实体)时,只需构建然后在Update-Database -Force中运行Package Manager Console

如果您还有其他问题,请与我们联系。

答案 2 :(得分:2)

检查继承DbContext的类的名称。它的名称必须与Web.config

中connectionString的名称相同
<connectionStrings>
    <add name="TheSameNameAsYourDbContextClass" providerName="" connectionString="" />
  </connectionStrings>