Scaffold-DbContext を実行すると "The following file(s) already exist in directory" エラーが発生する - Visual Studio

Scaffold-DbContext を実行すると "The following file(s) already exist in directory" エラーが発生する現象と対処法を紹介します。

現象の確認

Scaffold-DbContext を実行するとビルドの成功後に以下のエラーが表示されます。
エラーメッセージ
The following file(s) already exist in directory '(モデルの保存フォルダ)': [モデルのファイル名] Use the Force flag to overwrite these files.


原因

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の更新ができました。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2023-06-26
作成日: 2023-06-26
iPentec all rights reserverd.