我创建了一个要包含在主 MVC3 Web 应用程序中的模块。该模块被打包成一个 NuGet 包,可以通过 NuGet 安装和卸载。主站点和模块都使用 Code First,EF >= 4.3
要创建包,我有另一个 MVC3 站点,所有功能都在一个区域内,所以要创建包,我只需打包库、视图和所有需要的文件。数据库迁移在项目中运行良好,并且包创建得很好。
现在我通过 NuGet 在主站点安装包。该站点在另一个解决方案中,该解决方案有两个项目:
- MyProject.Web.UI:这是一个 Mvc3 项目
- MyProject.EntityFramework:这是一个包含所有模型的类库,MyProject 的 dbContext...
包已正确安装,并且区域、区域视图和库已正确安装。
现在的问题是我如何更新数据库?我首先尝试运行“Update-Database”,但收到以下消息:
“在程序集 'MyProject.Web.UI' 中找不到迁移配置类型。(在 Visual Studio 中,您可以使用包管理器控制台中的 Enable-Migrations 命令添加迁移配置)。”
然后我尝试使用“Enable-Migrations”启用迁移,但我收到了另一条消息:
“在程序集 'MyProject.Web.UI' 中找不到上下文类型。”
我还尝试运行该站点并查看是否自动应用更改,但我得到带有典型消息的异常页面:
“支持 'NugetPackageDbContext' 上下文的模型在创建数据库后发生了变化。考虑使用 Code First 迁移来更新数据库”
我不知道如何使用 NuGet 包中的迁移所需的更改来更新数据库。任何人都可以在这件事上有所启发吗?我对迁移很陌生,如果有更改而不是在控制台中运行命令,也许有一些配置可以更新数据库,我有点迷茫。
提前致谢 :)