0

データベースには、2 つのテーブルUserOrganizationブリッジング テーブルがありますUsers_Orgs

テーブルには、 とのUsers_Orgs2 つの列で構成される複合キーがuserIdありますorganizationId。デザイナーを使用して関連付けを作成すると、参照制約用に と の 2 つのプリンシパルが作成されUsersますUsers_Orgs。問題はUsers_Orgs制約にあります - と の両方organizationIdで構成されるキーがありuserIdます。organizationIdはテーブルにないためUser、マップできず、コンパイルされません。

Users_Orgs テーブル Users_Orgs の制約

[削除] ボタンをクリックすると、ダイアログが閉じorganizationIdて、users テーブルの主キー (userId ではない) にマップされます。

既存のデータベースで複合キーを使用して多対多のマッピングを行うにはどうすればよいですか?

4

1 に答える 1

1

モデルにブリッジテーブルがあるのはなぜですか?このテーブルに追加のプロパティがない場合は必要ありません。Usersそれ以外の場合は、との間の関係をモデルOrganizations化し、多対多の多重度を正しく構成する必要があります。EFは、この関係のブリッジテーブルとマッピングを自動的に作成します。

問題を解決するには:ブリッジングテーブルは、プリンシパルではなく依存しています。制約内の役割を切り替え、User.UserIdPKをUsers_Orgs.UserIdFKにマップします。

于 2012-02-02T19:37:47.813 に答える