Scaffold-DbContext を実行すると "The following file(s) already exist in directory" エラーが発生する現象と対処法を紹介します。
Scaffold-DbContext を実行するとビルドの成功後に以下のエラーが表示されます。
Scaffold-DbContextを2回目に実行すると上記エラーが発生します。これは、1回目で作成したファイルを上書き防止のためのエラーメッセージです。
データベースのテーブルの列や型を変更した場合に再度Scaffold-DbContextを実行して結果を保存する場合は -force
コマンドを指定してScaffold-DbContextを実行します。
パッケージ マネージャー コンソール で -force
オプションを追加した、次の書式でScaffold-DbContextコマンドを実行します。
Scaffold-DbContext '(データベースの接続文字列)' Microsoft.EntityFrameworkCore.SqlServer -force
または
Scaffold-DbContext '(データベースの接続文字列)' Microsoft.EntityFrameworkCore.SqlServer -OutputDir (モデルの保存先フォルダ) -force
エラーが発生せずに、DbContextの更新ができました。