1. ホーム
  2. c#

[解決済み] Entity Framework - ナビゲーションプロパティを手動で追加する

2022-09-01 06:22:03

質問

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

たとえば

Peopleというテーブルがあり、以下のカラムを持っています。 GenderID 人種ID

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

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

どのように解決するのですか?

そうですね、そんなに簡単ではありません。

こうするんだ。

1 - デザイナーを右クリックします。 を追加します。 -> 協会

2 - 関連付けと基数を設定します (People *..1 Gender, People *..1 Race)

3 - このような モデルブラウザ -> アソシエーション

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

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

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

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

お役に立てれば幸いです。