web-dev-qa-db-ja.com

Entity Framework-ナビゲーションプロパティを手動で追加

データベースからEntity Framework Model(4.0)を生成しました。データベースを設計せず、スキーマを制御しませんでしたが、外部キー制約が定義されていないテーブルがいくつかありますが、暗黙的な関係が定義されています。

例えば:

次の列を持つPeopleというテーブルがあります:GenderID RaceID

GenderとRaceの両方のテーブルがありますが、Peopleテーブルには外部キーはありません。

モデルをインポートしたときに、これらの関係のナビゲーションプロパティは追加されませんでした。手動で追加しようとしましたが、From RoleとTo Roleは無効になっています。関係を自分で追加する方法がわかりません。どうすればいいですか?

110
Dismissile

うん-それは簡単ではありません。

あなたがすることは次のとおりです。

1-デザイナーを右クリックして、追加-> 関連付け

2-関連付けとカーディナリティの設定(人* .. 1性別、人* .. 1種族)

3-モデルブラウザ-> アソシエーションに移動します

4-新しく作成した関連付けを右クリックし、プロパティをクリックします

5-ここでは、キーおよびカスケードオプションのエンドポイントをセットアップする必要があります。エンドポイントが正しいことを確認してください。ここで、暗黙のナビゲーションプロパティの参照制約を設定することもできます。

6-ナビゲーションプロパティを関連するテーブル/フィールドにマップします。

7-モデルを検証し、指を交差させます。

お役に立てれば。

176
RPM1984

私は このブログ投稿 に出会いました。これは次の解決策を提案します。

  1. デザイナーの背景を右クリックしてコンテキストメニューを使用して関連付けを追加する
  2. 関連付けを設定します(外部キーの作成のチェックを外してください)
  3. 関連付けを右クリックして、[プロパティ]を選択します
  4. クリックしてください ... 参照制約のボタン
  5. 内のキー間の関係を設定します
  6. 確認(デザイナーのコンテキストメニューから)
  7. ???
  8. 利益!
44
dav_i