您的位置:首页 > 数据库

支持“OdeToFoodDb”上下文的模型已在数据库创建后发生更改

2015-05-05 17:19 411 查看


“/”应用程序中的服务器错误。


支持“OdeToFoodDb”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 支持“OdeToFoodDb”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

参照 http://www.cnblogs.com/xiaodoublog/archive/2013/01/29/2881028.html
解决:

PM> Enable-Migrations
在程序集“MVCPluginDemo.UI”中找到多个上下文类型。
要允许“MVCPluginDemo.UI.Models.ApplicationDbContext”的迁移,请使用 Enable-Migrations -ContextTypeName MVCPluginDemo.UI.Models.ApplicationDbContext。
要允许“MVCPluginDemo.UI.Models.OdeToFoodDb”的迁移,请使用 Enable-Migrations -ContextTypeName MVCPluginDemo.UI.Models.OdeToFoodDb。
PM> Enable-Migrations -ContextTypeName MVCPluginDemo.UI.Models.OdeToFoodDb
正在检查上下文的目标是否为现有数据库...
检测到使用数据库初始值设定项创建的数据库。已搭建与现有数据库对应的迁移“201504290901388_InitialCreate”的基架。若要改用自动迁移,请删除 Migrations 文件夹并重新运行指定了 -EnableAutomaticMigrations 参数的 Enable-Migrations。
已为项目 MVCPluginDemo.UI 启用 Code First 迁移。

启动后仍旧无效!!!

打开生成后的 Configuration,修改相关默认值:
public Configuration()
{
AutomaticMigrationsEnabled = true; //默认为 false
ContextKey = "aspnet-MVCPluginDemo"; // 必须和配置文件数据库名称 一致,默认为上下文名称。
}

重新运行,搞定!

更改数据库连接串:



参照网上解决方案:

PM> Update-Database
指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。
正在应用显式迁移: [201504290901388_InitialCreate]。
正在应用显式迁移: 201504290901388_InitialCreate。
正在应用自动迁移: 201505050733046_AutomaticMigration。
未应用自动迁移,因为自动迁移会导致数据丢失。

再次启用自动迁移:

PM> Enable-Migrations -ContextTypeName MVCPluginDemo.UI.Models.OdeToFoodDb -Force
正在检查上下文的目标是否为现有数据库...
已为项目 MVCPluginDemo.UI 启用 Code First 迁移。

重新输入数据库更新命令:

PM> Update-Database
指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。
正在应用显式迁移: [201504290901388_InitialCreate]。
正在应用显式迁移: 201504290901388_InitialCreate。
无法将数据库更新为与当前模型匹配,因为存在挂起的更改并且禁用了自动迁移。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。
您可使用 Add-Migration 命令将挂起的模型更改写入基于代码的迁移。

按照提示,将配置文件 Configuration 修改

AutomaticMigrationsEnabled = true; //默认为 false

问题依旧!!!
反复尝试多次,错误也依旧,于是删除了生成的自动迁移文件



再次尝试,ok!生成成功!!

注: 修改后的数据库连接串:

<add name="OdeToFoodDbMy" connectionString="Data Source=(local);Initial Catalog=OdeToFoodDb;user id=sa;pwd=server;" providerName="System.Data.SqlClient" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐