我的 ASP.NET MVC4 应用采用 Entity Framework 代码优先方法。我最近将我的 DbContext 继承者移到了单独的模型项目中(我已经将连接字符串从 web.config 复制到 app.config)。
现在,当我尝试运行我的应用程序时出现错误,我的数据库应该直接通过代码优先或迁移创建。第一种方式不适合我,因为我有远程数据库服务器(我是通过托管商的控制面板创建的)。
但是当我尝试启用迁移时,我遇到了错误 No context type was found in the assembly 'MyProject'
.这显然是因为我的 DbContext 继承者没有放在启动项目中。
那么我如何指示在单独的项目中查看上下文类?
顺便说一句,我有DropCreateDatabaseIfModelChanges<>
我的 DbContext 继承者的初始值设定项。
在包管理器控制台中,如果您运行 Get-Help Enable-Migrations
,它将向您显示所有高级选项。其中包括:
- -ProjectName(运行此命令的项目,即查找上下文类型)
- -StartupProjectName(具有运行上下文的 app.config/web.config 的项目,即您的连接字符串所在的位置)。 这一点很重要,除非您的模型项目在其自己的 .config 文件中具有正确的连接字符串。
- -ConnectionString(如果要覆盖该值,则在构建迁移时使用的连接字符串)
当您使用 Add-Migration
时,它应该支持相同的选项。
您还可以更改包管理器控制台的默认项目下拉列表,以默认针对您的模型项目运行。
我是一名优秀的程序员,十分优秀!