4

こんにちは、別の質問で戻ってきました。EF の使用を開始しましたが、問題が発生しています。

概要:
EF モデルを作成しましたが、1 つのテーブル (UserRoles という名前) が EF モデル ダイアグラムに表示されないことがわかりました。「データ モデルの更新」で追加しようとしましたが、ウィザードでそのテーブルが表示されませんでした。追加するには(すでに追加されているかのように)、「データモデルの更新」ウィザードを使用してモデルを更新しようとしましたが、役に立ちませんでした。

問題の説明:
元の DB ダイアグラム。
ここに画像の説明を入力
部分EFモデル図
ここに画像の説明を入力
「データモデルの更新」で追加してみた
ここに画像の説明を入力

EF ダイアグラムのエンティティの名前を「UserRoles」に変更しようとすると、エラー メッセージが表示されました。 ここに画像の説明を入力

PS:問題をうまく説明できたと思いますが、必要な情報があれば教えてください。

4

1 に答える 1

3

さて、あなたはオブジェクトを扱っているので、SQL はもう必要ありません。

また、EF では、多対多の関係に特別な「エンティティ」は必要ありませんが、特定の「関係」は必要です。

User クラスには Roles のリストがあり、Roles クラスには User リストがあります。これは、単純な多対多の関係を完全に表しています。

リレーション テーブルに少なくとも 1 つの別のプロパティ (「RelationName」文字列、たとえば - 愚かな - ) がある場合、それは EF モデルに存在します...

編集:必要なものがわからない:それは単なる「オブジェクト」の方法です。Database を使用していない場合にこれらのクラスを作成する方法を考えてみてください。リレーションの各部分で他のクラスの List を作成します。しかし、Sql ではそれができません (データベースに「リスト」を含めることはできません)。そのため、Sql には関係テーブルが必要です。ただし、EF は ORM であるため、SQL ではなくオブジェクトです。

編集2:

Code First でリレーションを作成する方法ですが、非常に明示的です http://blogs.msdn.com/b/wriju/archive/2011/05/14/code-first-ef-4-1-building-many -to-many-relationship.aspx

より多くの答えが必要な場合は、「多対多のエンティティフレームワーク」をグーグルで検索してください。

于 2012-05-20T11:41:13.027 に答える