【问题标题】:SQL Server columns missing in Entity Framework实体框架中缺少 SQL Server 列
【发布时间】:2014-07-31 16:18:35
【问题描述】:

我正在使用 ASP.NET MVC 4、Entity Framework 6、Visual Studio 2013、IIS 7 和 SQL Server 2012 Express。我最近对我们的 Web 应用程序进行了更改,并使用代码优先迁移添加了 2 列。测试了一切,它正在工作。将所有内容发布到 Web 服务器,一切正常运行了大约 4 个小时,然后我们开始收到无效的列名错误。

我开始查看数据库,我之前添加的 2 列都不见了。我使用 VS2013 中的 update-database 命令重新添加了这些列,一切都恢复了。

我可以去哪里尝试找出发生了什么?

【问题讨论】:

  • 可能进行了一些恢复?
  • 我们是一家小公司,只有我一个人。不过还是谢谢。

标签: c# entity-framework asp.net-mvc-4 sql-server-2012-express


【解决方案1】:

转到 Migrations 文件夹,将类 Configuration 的构造函数中 AutomaticMigrationsEnabled 的值更改为 false

public Configuration()
{
      AutomaticMigrationsEnabled = false;
}

【讨论】:

  • 我改变了这个并且它工作了几个小时,然后我的用户开始收到这个错误无法更新数据库以匹配当前模型,因为有待处理的更改并且自动迁移被禁用。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。您可以使用 Add-Migration 命令将挂起的模型更改写入基于代码的迁移。
【解决方案2】:

我会查看我的 SQL 日志以了解发生了什么。我认为这与实体或您的应用程序没有任何关系。除非您的部署 Web 配置连接字符串在前 4 小时内指向您的开发数据库,​​然后有人将其更改为您的生产服务器。

【讨论】:

  • 不幸的是,我犯了在生产数据库上做所有事情的错误:(
猜你喜欢
  • 2016-06-29
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多