質問: 私はデータベース(EntityFrameworkのデータベースの最初のアプローチ)からクラスを生成しようとしています。 便宜上、私はこのチュートリアルに沿って歩いています。https : //docs.efproject.net/en/latest/platforms/full-dotnet/existing-db.html 私はVisual Studioパッケージマネージャコンソールで次のコード行を実行しています。 ``` Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -Verbose ``` このコード行はエラーを生成しています(-Verboseモードをオン)。 ``` Using startup project 'EFSandbox'. Using project 'EntityFrameworkCore' Build started... Build failed. ``` 意味のある出力を生成する他のオプションはありません。この特定のエラーに関するドキュメントはありません。それが助けになると、このプロジェクトには現在project.jsonファイルがありません。すべてが手動で編集していない.csprojファイルにあります。
回答: 新しいscaffoldコマンドを実行する前に、まずプロジェクトがビルドされていることを確認してください。 私によくあることは、1行のコードを書き始め、新しいDB列が必要であることを理解し、それを足場に入れようと試みることです。コードの半分書かれた行を持っています。おっとっと。 複数のDLLがある場合は、間違ったプロジェクトに生成されている可能性があります。それから、 'ビルド失敗'がいくつかの理由で発生しています。おそらく、そのプロジェクトにEFCoreがインストールされていない可能性があります。 パッケージマネージャコンソールには`Default project`あり、それがおそらくあなたのファイルが終わったところです。 解決策は簡単で、あなたはあなたのオプションに`-Project`スイッチを追加する必要があるだけです。 これは私が使用する完全なコマンドです: > Scaffold-DbContext -Connection "サーバー=(ローカル);データベース= DefenderRRCart;統合セキュリティ= True; Trusted_Connection = True;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir RRStoreContext.Models -context RRStoreContext -Project RR.DataAccess -force > > 注意:-forceはファイルを上書きしますが、もう存在しないファイルは削除しません。 DBからテーブルを削除する場合は、古いエンティティファイルを自分で削除する必要があります(Explorerで日付順にソートして古いものを削除するだけです)。 フルオプション: https : //docs.efproject.net/en/latest/miscellaneous/cli/powershell.html#scaffold-dbcontext