13

我正在使用 Web 部署首先使用 EF5 代码部署 MVC4 应用程序。我制作了一个名为“开发”的发布配置文件,该配置文件使用“执行代码优先迁移”复选框对应用程序和数据库使用 Web 部署,以便在应用程序启动时运行迁移。出版工作了一段时间。在某个时候,我添加了一个名为“test”的新发布配置文件以部署到另一台服务器,该服务器使用 ftp 部署方法并且没有自动迁移。这也很好。但是,当我再次尝试使用旧的“开发”发布配置文件时,VS 自动将设置更改为 dbDacFx 方式(“更新数据库”复选框而不是“执行代码优先迁移”),我无法将其恢复为原来如此。使用“测试”时,项目还有一些其他变化 个人资料,但在我看来,没有任何事情会导致这种情况。有谁知道为什么 VS 认为我的项目不再首先使用代码?

4

6 回答 6

10

自从提出这个问题以来,我在 MVC 和 EF 的多个版本中多次遇到这个问题(当然,所有代码都是首先出现的)。发生这种情况时,请不要将更改保存到您的发布配置文件,确保您处于“调试”构建配置、清理解决方案和重新构建解决方案。如果一切都失败了,请重新启动 Visual Studio 并重试。到目前为止,这一直为我解决了这个问题。

于 2013-12-13T10:30:40.010 回答
5

这是正确的答案-为我解决了问题。只需将您的连接字符串重命名为您的 DbContext,例如

        public ApplicationDbContext()
        : base("Vocabulary.Domain.ApplicationDbContext", throwIfV1Schema: false)
    {
    }

请注意,名称应包括命名空间,如“Vocabulary.Domain.ApplicationDbContext”。不要忘记更新 .pubxml 文件:

    <ObjectGroup Name="Vocabulary.Domain.ApplicationDbContext" Order="1" Enabled="True">

本文描述了何时发布对话框有或没有勾选“执行代码优先迁移(在应用程序启动时运行)”

于 2015-05-27T08:50:24.247 回答
1

这在VS2013中发生在我身上。既不清洁解决方案,也不重新启动它。我试图“重新启用”迁移并且它有效。即使我收到一条错误消息,指出项目中已启用迁移,“执行代码优先迁移”复选框再次出现。

于 2015-03-12T16:29:43.490 回答
0

由于上述没有任何工作。
publish profile从 azure 下载了它,它第一次完美运行

于 2016-11-03T10:16:10.273 回答
0

我遇到了这个问题,对我来说,它与我在其他地方发现的任何原因都有不同的原因。

我的应用程序分布在解决方案中的许多项目中。由于我使用接口和单独的 View/Presentation 模型来包装对数据库的调用,我的前端 Web 项目没有直接引用包含 DbContext 类的项目。请注意,这对我在本地运行站点没有任何问题。我这样做是为了让前端 Web 项目中的开发人员不会试图绕过表示层并更直接地进入数据库。

添加此引用立即解决了问题,现在我在“发布配置文件”对话框中看到“执行代码优先迁移”复选框。

于 2016-12-28T10:32:36.633 回答
0

只是为了增加组合,不要称您的连接类DbConn似乎不喜欢那样。

于 2019-10-25T12:24:22.697 回答