2012-11-09 94 views
1

使用VS 2010,MVC 3和SQL Express,我一直在关注ASP.net上的教程。我也是先使用EF代码。到目前为止,我的连接字符串一直是:MVC 3连接字符串混淆

<add name="MusicStoreEntities" 
    connectionString="Server=.\SQLExpress;Database=MusicStoreDB;Integrated Security=SSPI;User Instance=true" 
providerName="System.Data.SqlClient" /> 

它创建的DB:

C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS 

我现在想数据库驻留在App_Data文件夹中。所以我创建了一个新的Web应用程序,遵循不同的教程,但是这次我添加了一个SQL数据库,并通过更改数据库名称修改了成员资格数据库的连接字符串。然后,我使用aspnet_regsql.exe创建成员表。然后我创建了POCO类,一个控制器并添加了种子数据。由于数据库已经存在,它抱怨没有EdmMetadata表。经研究,我意识到我的错误并删除了数据库。更不用说数据库将在项目被修改时被删除和创建。再次运行项目给了我错误“初始目录没有指定”,所以我修改了连接字符串。再次运行项目我得到错误'C:\ ContosoUniversity \ ContosoUniversity \ App_Data \ School.mdf'已经存在。选择不同的数据库名称。

我的硬盘驱动器搜索显示此数据库不存在。我的连接字符串如下所示:

<add name="SchoolContext" 
     connectionString="data source=.\SQLEXPRESS;Initial Catalog=School;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|School.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" /> 

什么使它认为数据库存在?我需要做什么才能首先获取代码以在App_Data文件夹中创建数据库?

回答

0

尽管我最终在挫折中更改了数据库名称,但是我的注册表搜索显示了app_data目录中的school.mdf的多个条目。删除这些解决了这个问题。