首页 > 解决方案 > 为什么我的代码优先 ASP.NET MVC 应用程序突然无法工作,只是因为我从另一个位置打开它?

问题描述

我有一个代码优先的 ASP.NET MVC 应用程序,它运行平稳,能够从 SQL Server 访问数据,直到我将项目复制到另一个位置并从那里打开它。

我收到以下错误:

System.Data.DataException
HResult=0x80131501
Message=初始化数据库时发生异常。有关详细信息,请参阅 InnerException。
来源=

堆栈跟踪:

内部异常 1:
EntityException:基础提供程序在打开时失败。

内部异常 2:
SqlException:数据库 'C:\Users\BICHE\Desktop\FinalCSharpChallenge\FinalCSharpChallenge\App_Data\StudentContextDB.mdf' 已经存在。选择不同的数据库名称。
无法将文件“C:\Users\BICHE\Desktop\MY REPOS3\The-Tech-Academy-C-Coding-Project\FinalCSharpChallenge\FinalCSharpChallenge\App_Data\StudentContextDB.mdf”附加为数据库“StudentContextDB”。

我的问题是:为什么会因为我将项目从桌面移动到计算机上的另一个位置而发生这种情况?

这可以通过制作一个“if”语句来解决,该语句继续使用StudentContextDBif 它是否存在,如果它不存在则创建它?(我的导师建议这个,所以我想我会先试试这个)

最后,如果这是正确的解决方案,那么该特定语句的语法是什么?我看到了 Drop and Create 的说明,但没有看到 Use 或 Create 的说明。

我感谢人们对这个问题的任何见解!

标签: sql-serverasp.net-mvccode-first

解决方案


这里的简短版本是 db 服务器仍然具有对数据库旧位置的引用。您移动它并尝试启动应用程序并指向具有相同名称的数据库的新位置。数据库服务器不知道如何处理。最好将数据库与数据库服务器分离,然后移动文件。


推荐阅读