web-dev-qa-db-ja.com

Entity Framework 4 Entitydesignerで2つのオブジェクト間の関連付けを正しく設定するにはどうすればよいですか?

新しいプロジェクトでは、最初にビジネスクラスを作成し、後で実際のデータベーステーブルを作成しようとしています。そのため、Entity Framework 4 Designerを使用しています。 Aは、拡張子が.edmxの新しい「ADO.Net Entity Data model」ファイルを作成しました。

2つのエンティティを作成しました。
alt text

Product-> Groupの間に1対ncの関係を追加したい。 MSSQLデータベースを最初に作成した場合、列IDGroupをTable Productに追加し、Product.IDGroupをGroup.IDGroupに参照していました。私が見る限り、IDGroupと呼ばれる新しいプロパティを製品エンティティに追加すると、デザイナーにそのような関連付けを追加できません。

これは私がマッピングを追加する方法です: alt text

結果:
alt text

この質問の内容は次のとおりです。既存のMSSQLデータベースから2つのテーブルをedmxファイルに追加すると、コンパイルエラーが発生します。

Error 3027: No mapping specified for the following EntitySet/AssociationSet - GroupSet, ProductSet

そのエラーは何を意味し、これを修正するにはどうすればよいですか?これらの2つのテーブルを削除すると、代わりに警告が表示されます。

Error 2062: No mapping specified for instances of the EntitySet and AssociationSet in the EntityContainer myContainer.

何かが私に言っています、私はこれをすべて間違っています、これは単なる基本的なことです。どうすれば正しくできますか?

54
citronas

私は自分でこれに出くわし、Googleで検索しました(質問に答えました)。

デザイナーでライン(関連付けライン)をダブルクリックできました。そこにプロパティを入力すると、機能します。

また、報告されたエラーのいくつかを解消するために、VSを閉じて再度開く必要がありました...

これが正しい答えだとは言えません-ただ手探りして結果を得るようです。

85
Jason Jarrett

見落としがちなことは、モデルからデータベースを生成するです。私が理解していることから、これはDatabase .edmxに変更を加えるたびに実行する必要があります。

この単純な間違いが私に起こり、数分間フラストレーションにつながりました=)

9
pabbie

EF4.1がインストールされたVS2010 SP1でADO.Net DBContext Generatorを使用してデータベースからモデルを生成すると、このエラーが発生しました。使用していたデータベースには、プライマリキーフィールドと外部キーフィールドの間に参照整合性がありませんでした。

解決策は、関連線をダブルクリックして、[参照制約]ダイアログボックスを表示することでした。次に、プリンシパルフィールドを主キーを持つテーブル、外部キーを持つテーブルとして依存するフィールドを設定し、ドロップダウンで一致するように外部キー名を設定し、[OK]をクリックしました。

その後、コードがコンパイルされ、var foreign = DBContext.Primary.First()。Foreignなどを使用してエンティティ間で作業できました。

スティーブ

6
Steve Davies

同じエラーが発生しましたが、「関連の追加」ダイアログで設定しなかった構成の一部は「参照制約」プロパティでした。構成したら、ソリューションを再構築し、すべてがクールになりました。

3
Jon Dewees

データベースファーストのアプローチを使用していますが、同じ問題が発生しました。

何がcausing同僚がデータベースからテーブルの1つを削除し、モデルを更新するのを忘れたため、問題が発生しました。

My solutionは、ダイアグラムから削除されたエンティティを見つけます。 (モデルブラウザが便利です。)データベースからテーブルを削除した場合、EFはエンティティを削除しないため、ダイアグラムから削除します。

ビルドし、エラーリストウィンドウ(Ctrl + E、W)を確認します。

できた.

0
Dinch

また、Entity Frameworkコンテキストとモデルを変更した後にプロジェクトを再構築すると、特にEntity Frameworkコンテキストが別のプロジェクトにある場合に、これらのエラーを解決できることがあります。

0
Xipooo

あとは、edmxファイルからすべてのテーブルを削除するだけです。 edmxファイルを右クリックし、フォームデータベースの更新オプションを選択します。 Efを更新すると、問題は解決されます。

0
M Tauqeer

モデルダイアグラムから関連付けを削除したときにこのエラーが発生しましたが、関連付けは.edmxの基になるXMLに残ります。私が見つけた唯一の修正方法は、edmxを手動で編集して問題のある関連付けへの参照を削除することです。

0
jburka