【问题标题】:How to enable Code First Migrations in ASP MVC app?如何在 ASP MVC 应用程序中启用代码优先迁移?
【发布时间】:2013-04-18 07:31:00
【问题描述】:

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

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

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

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


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

【问题讨论】:

    标签: c# asp.net-mvc entity-framework ef-code-first


    【解决方案1】:

    如果您使用包管理器控制台,您可以选择一个默认项目,实体框架将在其中搜索您的DbContext

    【讨论】:

    • 确实如此。这是this 的副本
    【解决方案2】:

    在包管理器控制台中,如果您运行Get-Help Enable-Migrations,它将显示所有高级选项。其中包括:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 2013-01-17
      • 2018-10-19
      • 1970-01-01
      • 2017-12-14
      相关资源
      最近更新 更多