2

edmx を更新しようとしています。右クリック -> データベースからモデルを更新します。そして、更新しようとするたびに、「同じキーを持つエントリが既に存在します」というエラーが表示されます

仲間が助けてくれませんか?

. ここに画像の説明を入力"

4

2 に答える 2

4

重複が edmx ダイアグラムに表示されない場合があり、コード側にある可能性があります。EF は時々少し面倒になることがありますが、これらの抜け穴をうまく処理することはできません。

Fernanda の提案に加えて、最もクリーンな方法は、edmx ファイルを削除し、接続文字列を再構成することです。

それをしたくない場合は、edmx のすべてのテーブルと関数を削除して保存し、同じエラーが引き続き発生するかどうかを確認してください。同じエラーが発生しなくなった場合は、すべてを再度追加して保存します。

于 2016-05-19T06:53:24.000 に答える
0

EDMX アプローチは Entity Framework 7 で廃止されることに注意してください。

「データベースからのモデルの更新」は、追加のデータベース オブジェクト (または既存のデータベース オブジェクトへの変更) を EDMX モデルに段階的にプルできるようにするプロセスです。残念ながら、この機能の実装は優れたものではなく、モデルに加えたカスタマイズが失われたり、ウィザードが適用しようとした変更の一部を手動で修正しなければならないことがよくありました (多くの場合、手動で xml を編集する必要がありました)。 .

Code First の場合、リバース エンジニアリング プロセスを再実行して、モデルを再生成することができます。これは基本的なシナリオでは問題なく機能しますが、モデルのカスタマイズ方法に注意する必要があります。そうしないと、コードが再生成されたときに変更が元に戻されます。スキャフォールディングされたコードを編集しないと適用が難しいカスタマイズがいくつかあります。

そのため、EF 7 で推奨されるアプローチは、edmx ではなく、データベースをコードにリバース エンジニアリングすることです。以前はコード セカンド アプローチと呼ばれていました。

于 2016-05-19T07:14:27.163 に答える