MVC 3连接字符串混淆

时间:2012-11-09 14:13:11

标签: asp.net-mvc c#-4.0 .net-4.0

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

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

在以下位置创建数据库:

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文件夹中创建数据库,我需要做什么?

1 个答案:

答案 0 :(得分:0)

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