質問: 私はSQL Serverデータベースに次のテーブルを持っています!ここに画像の説明を入力 対応するFooId、BarId、および主キーにユニークなインデックスを持つ1-1関連テーブル(FooBar)があります(FooId、BarId)。 明確にするために、FooBarはFooId(ユニーク制約のため)がテーブルに複数回存在することを許可していません。これは、それを1-1結合テーブルにするものです。 実際の世界のシナリオでは、Barは無関係なテーブルとは別の関係を持つため、同様の関連テーブルが必要になるので、FooとBarの間に1-1の関係の代わりにこの関連テーブルを作成したいと思います(Barに新しいFK列を追加するのではなく新しいテーブルごとに) 次に、これらのテーブルをEDMXデザイナーに持って行きます。その関係は、1対1の代わりに多対多としてもたらされます。 !ここに画像の説明を入力 どちらが当然のことではないですか?モデルを手動で1-1の関係に変更できます。 !ここに画像の説明を入力 しかし、私は(デザイナーで)エラーが発生します。 !ここに画像の説明を入力 これはバグですか?またはこのようにEFで1-1の関連付けを作成することはできませんか?
回答: これはEFデザイン全体の「バグ」です*.Entity Framework 4-6.1x **はプライマリキーの多重度を授与し**ます。* したがって、我々は*候補者キー制約の*ために1-1の関係であることを(たとえRAモデルでも) *知っ*ているが、EFはそれを好まないし、好まないだろう。タフ運。 「ソリューション」には以下が含まれます。 1. モデルをEFが理解できるものに変更する(EFはRAではなくコードファーストを理解する)。これは、選択されたRAモデルの「問題」を示している可能性がありますが、質問とは正反対です。 2. 誤って生成された多重度ルールと「注意して使用する」ライブ。汚れた作業はラップすることができますが、自動生成モデルの外で手動で追加する必要があります。 3. ..うーん、他? 未解決の質問に対する恥知らずのプラグは、同じコアの機能不足を処理します。 * アソシエーション/リレーションシップの多重度におけるユニーク制約(FK上)を尊重するEF6の取得方法 * 主キーではない候補キー/一意キーにEF6アソシエーションを追加する方法