質問: たとえば、テニスアプリケーションに3つのテーブルがあるとします(関連性のない情報を削除します)。 コンペティション -------- ID(PK) 一致する ---- ID(PK) CompId(FK) 裁判所の割り当て -------- CompId(PK)、(FK) コート番号(PK) MatchId(FK)、(ユニーク) 上記の内容を説明すると、次のようになります。試合は2人の人々が法廷でお互いに対してテニスをすることから成ります。競争は0から多くの試合で構成されています。 courtassignmentは、競技中の裁判を表します(単一の競技では、0または1の試合が1つの裁判に割り当てられます)。また、単一の試合は単一の裁判番号でのみプレーでき、単一の競技にのみ存在します。 (したがって、これら2つのフィールドが一緒になってCourtAssignmentのテーブルの主キーを形成します) したがって、CourtAssignmentのMatchIdフィールドは常に一意またはnullになります。 しかし、私のデータベースからEFモデルを生成するとき。 CourtAssignmentナビゲーションプロパティとMatchの多重度は*です。これは0..1です。 Visual Studio 2010 Beta 2(.NET 4 Beta 2およびEF 4 Beta 2)を使用しています。 私はベータ1を使用していて、単純に*を0..1に変更することができました。しかし、現在稼動中のライセンスを持っているのでベータ2に変更しました(私のソリューションのアップグレードはうまくいきましたが、最初からソリューションを書き直すと、エラーを受け取らずに変更*を0..1に手動で変更することはできません。 > エラー113:多重度は関係 'CourtAssignments_MatchId_FK_Matches_Id'のロール 'CourtAssignments'で無効です。依存ロールのプロパティは重要なプロパティではないため、依存ロールの多重度の上限は*にする必要があります。 > > 質問 -- 多重度を0..1に変更する方法私の古い解決策はそのように機能し続けるので、私はそれが実行可能であることを知っています。私はもうデザイナーに変更を加えることはできず、edmxファイルで完全に迷子になります。 注:MatchIdを主キーに変更すると正しい多重度が生成されることを認識していますが、どの一致がどの裁判所にあるかをオンザフライで切り替えることができるため、主キーは[CompId、CourtNumber]のコンポジットにする必要があります。そして明らかにそれは主キーを変更してもうまくいきません。 助けを提供できる人をありがとう!
回答: Scott、これはあなたとまったく同じシナリオではありませんが、助けになるかもしれません: Entity Frameworkによって認識されない一意のキー 私はそれが関連しているかもしれないと思います - おそらくあなたはFK colsを概念的なモデルで露出させましたか?これが事実である場合それはあなたが1に0..1することができないようです。