1

VS 2010 Entity Frameworkデザイナを使用して、データベースから自動生成されたエンティティの一部を変更しています。

データベース構造は、UIを構築している製品によって定義されているため、変更できません。

データベースには、両方のテーブルの非キー列の共通の値に純粋に基づいた多対多の関係を持つテーブルがあります。

  • 表1ユーザーには、単一のID列userIduserProfileという別の列があります。
  • 2SecurityProfileには単一のID列securityProfileIdがあり、列userProfileもあります。

つまり、ユーザープロファイルは、ユーザーをSecurityProfilesにマッピングするための単なる名前です。

ウィザードは、UsersテーブルとSecurityProfileテーブルの両方のエンティティを作成しました。userProfileという単一のキーフィールドを持つUserProfileという新しいエンティティを作成しまし

UserProfileからUserへ、およびUserProfileからSecurityProfileへの1対多の関連付けを作成しました。UserProfileエンティティにテーブルマッピングがないためコンパイルされないことを除いて、これはすべて正常に機能します。

Entity Frameworkでこの関連付けを作成するにはどうすればよいですか?

アップデート:

EFを使用できない場合(最初の回答で示唆されているように)、これら2つのエンティティをリンクするために使用できる非バインドエンティティを手動で作成して、少なくとも少し簡単なオブジェクトモデルを公開することは可能ですか?ナビゲートするには?

つまり、UserエンティティとSecurityProfileエンティティを抽象化し、手動で作成したUserProfileエンティティを指す適切なプロパティを使用してこれらの拡張機能を手動で定義します。

4

1 に答える 1

3

あなたはしません。EFは、データベースに存在しない多対多の関連付けを処理できません。EFは、データベースと同じ参照整合性を要求します。この場合、ジャンクションテーブルが存在し、ダイアグラムで使用される関連付けにマップされる必要があります。

于 2012-06-06T10:05:45.130 に答える