1

我有带有实体框架代码优先方法的 ASP.NET MVC4 应用程序。我最近将我的 DbContext 继承者移到了单独的模型项目中(我已将连接字符串从 web.config 复制到 app.config)。

现在,当我尝试运行我的应用程序时,我遇到了一个错误,即我的数据库应该直接通过 Code First 或 Migrations 创建。第一种方式不适合我,因为我有远程数据库服务器(我是通过主机的控制面板创建的)。

但是当我尝试启用迁移时,我遇到了错误No context type was found in the assembly 'MyProject'。这显然是因为我的 DbContext 继承者没有放在启动项目中。

那么如何指示在单独的项目中查看上下文类?


顺便说一句,我有DropCreateDatabaseIfModelChanges<>我的 DbContext 继承者的初始化程序。

4

2 回答 2

2

在 Package Manager Console 中,如果您运行Get-Help Enable-Migrations,它将显示所有高级选项。其中包括:

  • -ProjectName(运行此命令的项目,即查找上下文类型)
  • -StartupProjectName(具有上下文运行的app.config/web.config 的项目,即连接字符串所在的位置)。 除非您的模型项目在其自己的 .config 文件中具有正确的连接字符串,否则这一点很重要。
  • -ConnectionString(如果要覆盖该值,则在构建迁移时使用的连接字符串)

当您使用Add-Migration它时,它应该支持相同的选项。

您还可以更改包管理器控制台的默认项目下拉菜单以默认针对您的模型项目运行。

于 2013-04-24T16:38:54.760 回答
2

如果您使用包管理器控制台,您可以选择一个默认项目,实体框架将在其中搜索您的DbContext. 在此处输入图像描述

于 2013-04-24T16:34:01.380 回答