嗨,我有一个使用具有以下连接字符串附加MDF文件一个工作程序:数据库错误在ASP.NET MVC3 EF4.1代码首先
<add name="SqlDataContext" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=true;User Instance=true;AttachDBFilename=|DataDirectory|\WPCloudApp26.mdf;Initial Catalog=WPCloudApp26;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
我使用的是Windows手机云应用模板,我有Azure存储模拟器在我的电脑上运行
一切正常,直到我做了第一次的步骤如下:
- 我要查看的数据库,所以我双击App_Data文件/ WPCloudApp26.mdf FIL当应用程序没有运行时,通过visual studio。当我双击它时,数据库在服务器资源管理器窗格中的数据连接下打开,我可以看到数据库和所有表。到目前为止一切都很好
- 我已经完成查看数据库,所以我通过右键单击 - >关闭连接来关闭连接。
- 我想再次运行应用程序,当我运行它时,所有的地狱崩溃。我收到以下错误消息:
一个或多个文件与数据库的主文件不匹配。如果您尝试附加数据库 ,请使用 正确的文件重试该操作。如果这是一个现有的数据库,则该文件可能被损坏,应该从备份中恢复。\ r \ n无法打开 数据库\“WPCloudApp26 \”登录请求。登录 失败。\ r \ n用户'NT AUTHORITY \ NETWORK SERVICE'的登录失败。\ r \ n日志文件'C:\ Users \ michael \ Documents \ Visual Studio 2010 \ Projects \ WPCloudApp26 \ WPCloudApp26 \ WPCloudApp26.Web \ App_Data \ WPCloudApp26.ldf' 与主文件不匹配。它可能来自不同的数据库 或日志可能以前已被重建。
抛出异常的方法var firstItem = context.SqlSampleData.FirstOrDefault();
完蛋了,无论我做什么,我不能再次运行该应用程序。这是让我疯狂的,因为唯一帮助的是创建一个不同名称的新解决方案(这就是为什么我得到了26号)
这是怎么回事?为什么只有在第一次尝试在Visual Studio中查看数据库之后才会发生这种情况?
编辑 我注意到,更改连接字符串中的初始目录和mdf文件解决了这个问题。那么db名称的剩余部分在哪里被保存?我怎样才能清理剩下的剩饭?
谢谢,请你详细解释为什么会发生这种情况?为什么有一个选项可以通过Visual Studio查看它,如果他们知道它打破了它。我开始真的讨厌这个工具包和VS – Michael 2012-03-19 22:52:22
另一个问题,当我从硬盘中删除项目,并重新启动相同的名称,它仍然无法正常工作,即使没有任何内存的任何地方的mdf文件。你有这个解释吗? – Michael 2012-03-19 22:54:07
迈克尔,你应该真的把SQL Server视为一个...服务器。因此,作为开发人员和/或最终用户,您几乎不应该为其内部使用和其使用的文件而烦恼。我看不出为什么你作为开发人员想要自己打开.MDF文件。这会给你带来什么好处?您可以通过使用SSMS作为客户端连接到所有维护和其他任务。 – 2012-03-20 07:04:19