2

ファイルを削除してaspet-*.mdfからプロジェクトを再実行しようとすると、この例外が発生します

データベースの初期化中に例外が発生しました。詳細については、InnerExceptionを参照してください。

初めてDBをヒットしようとしたとき。次に、メインWeb.configファイルに移動し、「初期カタログ」ビットを別の名前に変更してプロジェクトを再実行すると、正常に実行されます。

なんで?どこかにキャッシュしていると思いますが、カタログはまだ存在していると思いますが、見つかりませんか?

ただし、変更する必要はありません。AttachDBFilenameファイル名はまったく同じにすることができ、カタログを変更する限り、ファイル名が再作成されます。

「カタログ」とは正確には何ですか。接続文字列を変更し続ける必要がないように、この問題を修正するにはどうすればよいですか。

私が使用している完全な文字列は

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Sharpix-20120918b;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Sharpix-20120907.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

これは、MVC4アプリケーションに付属しているものからわずかに変更されています。

4

1 に答える 1

3

接続文字列が以下のようなものであると仮定します

connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-123123;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-123123.mdf" 

1) SQL Management Studio を使用してデータ ソースにログオン サーバーの種類: データベース エンジン サーバー名: (LocalDb)\v11.0 認証: Windows 認証

2) これが開くと、不思議なことに作成されているように見えるすべてのデータベースが表示されます。

3) 削除するデータベースを右クリックし、ダイアログ ウィンドウに従います。

VS 2012 の新しい vof である localDB エンジンは、これらすべての開発データベースを格納します。.mdf を物理的に削除する場合は、データベース名を右クリックしてデータベースを削除してください。警告メッセージを無視して、データベースを更新します。データベース参照はなくなっているはずです。

VS 2012 で同様の操作を行うには、[ビュー]、[サーバー エクスプローラー] を選択し、[サーバー エクスプローラー] ペインから SQL Server オブジェクト エクスプローラーを選択します。

于 2012-09-26T03:26:30.700 に答える