私はフォローしています このガイド EntityFrameworkコアを使用したコードファーストのアプローチを示しています。ある時点で.mdfファイルを削除するまで、移行は正しく機能していました。それ以降、(移行を適用するために)Update-Database
を実行すると、次のエラーがスローされます。Database 'DatabaseName' already exists. Choose a different database name.
このデータベースは正確にはどこにありますか?どうすれば完全に削除できますか?
this の回答によると、データベースをSQL Serverからデタッチする必要がありますが、今はその方法がわかりません。 SQL Server Management Studioで、sp_detach_db DatabaseName
を実行すると、エラーThe database 'DatabaseName' does not exist. Supply a valid database name.
がスローされます。
前もって感謝します。
[〜#〜] update [〜#〜]データベースをSQLで接続している場合、このdatabase already exists
エラーも再現できるようですServer Management Studioで、Update-Database
コマンドを実行します。 Management Studioを閉じると、このエラーなしで移行が適用されます。私には非常に混乱しています。
LocalDBのインスタンスがまだバックグラウンドで実行されているようです。コンソールで次のコマンドを実行して、インスタンスを停止および削除します。
sqllocaldb stop
sqllocaldb delete
Update-Databaseコマンドで問題が発生することはありません。
SQL Serverオブジェクトエクスプローラーを確認してください(VisualStudio->表示-> SQL Serverオブジェクトエクスプローラー)。 'DatabaseName'データベースが含まれている場合は、削除してみてください。
ローカルDBの可能性があります。ローカルDBに接続してみてください
(LocalDb)\MSSQLLocalDB
そして、DBがそこにあるかどうかを確認します。 SSMSから削除する必要があるかもしれません
SQLを使用してデータベースを作成する場合(つまり、DBがすでに存在する場合)、次の行を入力しますDROP DATABASE [databaseName]
ファイルの先頭databaseName.sql
これにより、DB全体とその定義(スキーマ)が削除され、新しいDBの作成を開始できます。
Web.configファイルの「xxxxx-20170604092712
」の番号コードを変更してみてください。
次に、「update-database」を再度実行します。これは私のために働いた。