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テーブルがないことに不満がありました。調べてみると、自分の間違いに気づき、データベースを削除しました。言うまでもなく、プロジェクトが変更されると、DBは削除されて作成されます。プロジェクトを再度実行すると、「初期カタログが指定されていません」というエラーが表示されたため、接続文字列を変更しました。プロジェクトを再度実行すると、エラー'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" />
DBが存在すると思わせる理由は何ですか?App_DataフォルダーにDBを作成するために、最初にコードを取得するには何をする必要がありますか?