我在运行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
答案 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>