.NET实体框架"记住"不存在的数据库名称

时间:2014-09-15 17:38:57

标签: .net database entity-framework data-access membershipreboot

我使用Brock Allen的强大MembershipReboot库在我的.NET应用程序中提供身份服务。每Getting Started with MembershipReboot,MembershipReboot使用实体框架(EF)进行数据访问。

示例应用程序包含SQL Server数据库MembershipReboot.mdf。在这个数据库中,我导出了模式和数据,并将其导入我的应用程序数据库(MyTestApp.mdf - 见下文)。

您可以看到MembershipReboot.mdf来自哪里,因为MembershipReboot附带的示例定义了以下连接字符串::

<add name="MembershipReboot" connectionString="Data Source=(LocalDb)\bla;Initial Catalog=MembershipReboot;Integrated Security=True" providerName="System.Data.SqlClient"/>

我为我应用的数据库设置了以下连接字符串:

<add name="DefaultConnectionString" connectionString="Server=(LocalDb)\bla;AttachDbFilename=|DataDirectory|\MyTestApp.mdf;Initial Catalog=MyTestApp;Integrated Security=True" providerName="System.Data.SqlClient" />

直到最近,一切都很顺利。然后,在我的应用程序启动一次后,我开始 - 间歇性地 - 首次访问数据库时出现以下错误:

  

无法附加文件&#39; C:\ Users \ mkrieger \ Google   驱动器\项目\ MyTestApp \ MyTestApp \ App_Data文件\ MembershipReboot.mdf&#39;作为数据库   &#39; MembershipReboot&#39;

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

     

异常详细信息:System.Data.SqlClient.SqlException:无法附加文件   &#39; C:\ Users \ mkrieger \ Google Drive \ Projects \ MyTestApp \ MyTestApp \ App_Data \ MembershipReboot.mdf&#39;作为数据库   &#39; MembershipReboot&#39;

我对我的应用程序目录进行了全文搜索,然后Strings搜索可执行文件和所有二进制文件,用于&#34; MembershipReboot.mdf&#34;但是空了。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

Brock Allen之前已经看到过这个问题(问题与MembershipReboot或任何特定的库无关)。

  

是的,我以前见过这个错误。当您删除sql express文件(mdf等)但不从数据库服务器中删除数据库时 - 换句话说,您需要从Sql Server Mgmt Studio或Visual Studio中的Sql Server资源管理器中删除数据库

这对我有用。