1

使用 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 文件夹中创建数据库?

4

1 回答 1

0

尽管我最终沮丧地更改了数据库名称,但搜索我的注册表后发现 app_data 目录中有多个 school.mdf 条目。删除这些解决了问题。

于 2012-11-15T13:54:30.780 回答