2

如果我删除我的aspet-*.mdf文件然后尝试重新运行我的项目,我会收到此异常

初始化数据库时发生异常。有关详细信息,请参阅 InnerException。

它第一次尝试访问数据库。如果我然后进入我的主Web.config文件并将“初始目录”位更改为不同的名称并重新运行项目,它运行良好。

为什么?我猜它在某个地方缓存了一些东西,它认为目录仍然存在,但它找不到它?

但我不必更改AttachDBFilename-- 文件名可以完全相同,只要我更改目录,它就会重新创建它。

究竟什么是“目录”,我该如何解决这个问题,这样我就不必不断修改我的连接字符串?

我正在使用的完整字符串是

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Sharpix-20120918b;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Sharpix-20120907.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

仅对 MVC4 应用程序附带的版本稍作修改。

4

1 回答 1

3

假设您的连接字符串类似于下面

connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-123123;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-123123.mdf" 

1)使用SQL management studio登录数据源服务器类型:数据库引擎服务器名称:(LocalDb)\v11.0 身份验证:Windows身份验证

2)一旦打开,您将看到所有看似神秘创建的数据库。

3) 右键单击​​要删除的数据库,然后按照对话框窗口操作。

localDB 引擎,新的 vof VS 2012,存储了所有这些开发数据库。如果您物理删除 .mdf,请右键单击数据库名称并删除数据库。忽略警告消息,然后刷新数据库。数据库引用应该消失了。

您可以通过 VS 2012 执行类似的操作,方法是选择视图、服务器资源管理器,然后从服务器资源管理器窗格中选择 SQL Server 对象资源管理器选项。

于 2012-09-26T03:26:30.700 回答