【问题标题】:An exception occurred while initializing the database初始化数据库时发生异常
【发布时间】:2013-04-29 04:27:20
【问题描述】:

我在做一个代码优先的实体数据库

{"初始化数据库时发生异常。见 InnerException 了解详情。"}

它工作正常,但我决定删除物理数据库以查看它重新创建它,但它每次都失败。

我得到了错误

无法附加文件 'C:\ASP\OdeToFood\OdeToFood\App_Data\OdeToFoodDb.mdf' 作为数据库 'OdeToFoodDb'。"}

它的代码优先所以我不明白为什么它不重新创建数据库。

【问题讨论】:

  • 你使用过迁移功能吗?您可能需要删除旧迁移并重做它。我偶尔会发现代码被误解。
  • 我还没怎么做?
  • 我没有进行代码迁移。我有一个没有数据库的代码优先模型,我只想让它再次创建它。我不应该编写任何代码来做到这一点。我可能只需要重新初始化一些东西。
  • 我的意思是您可以轻松地使用迁移功能来生成数据库。我相信它是进入控制台的一条线。

标签: asp.net asp.net-mvc entity-framework


【解决方案1】:

所以从 Visual Studio 中删除文件是一个愚蠢的想法。

SQL 仍然已注册。

启动 MS Sql 管理工具,在我的情况下连接到服务器

(本地)\v11.0

你会看到数据库,仍然存在,删除它,你会得到一个错误。该文件不存在。刷新并从 SQL 中消失。现在再次运行您的代码,一切都很好。

所以从管理工具而不是visual studio中删除数据库。

【讨论】:

  • 要保存下载,您也可以在 Visual Studio 中通过“SQL Server 对象资源管理器”执行此操作。
  • 这里应该是:(localdb)\v11.0 (local-->localdb)
  • 我也遇到了同样的问题,从 VS 中删除 mdf 之前工作正常。但是这个解决方案对我没有帮助,因为我在服务器管理工​​作室中看不到我的数据库或表。我的表不在我的本地数据库中,我无法通过服务器管理工​​作室找到它以删除它。
猜你喜欢
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多