質問: 外部キー{'ClassExtId'}をエンティティタイプ 'ClassInt'に追加できません。同じプロパティの外部キーがエンティティタイプ 'Instrument'にすでに存在し、 'ClassExt'のキー{'ClassExtId'}もターゲットにしているためです。 ClassFooとClassBarがClassIntから継承しているとしましょう。それらのそれぞれには、同じ列ClassExtIdへの参照があります。エンティティフレームワークのコアスキャフォールディング(v3)が文句を言うのはなぜですか?
回答: 私のケースは異なりますが、既存の古いデータベースを足場にしようとしたときにも同じエラーが発生しました。私は、誰かが私と同じ問題を抱えている場合に備えて、この回答を投稿しています。 私の古いデータベースでは、一部のテーブルに以前の開発者が作成した非常に多くの重複した外部キーがあることがわかりました。あなたはこれをあなたのSQLサーバーでチェックできます(私はSQLサーバー開発者版2019を使います) 1. オブジェクトエクスプローラーで、リレーションシップの外部キー側にあるテーブルを右クリックし、デザイン]をクリックします。 テーブルがTable **Designerで**開きます。 2. テーブルデザイナー]メニューの[ **リレーションシップ** ]をクリックします。そのテーブルに定義されているすべての外部キーが表示されます。私の場合は、重複しているのはapplicationIDでした。それをきれいにします: [![ここに画像の説明を入力してください 3. テーブルに移動し、テーブルを展開して、 **キーに**移動します。そこで重複キーを削除します。 !ここに画像の説明を入力してください 4. `dotnet ef dbcontext scaffold`コマンドを実行して、頑張ってください!