Entity Framework 1:1 関係におけるマスターの重要性
Entity Framework では、1 対 1 の関係は 2 つのクラスとそれらの相互排他的なナビゲーション プロパティによって表されます。曖昧さを排除するには、「マスター」を指定する必要があります。プライマリ側とは、最初にレコードを挿入し、関係を維持する関連付け内の側を指します。
この例で発生したエラーは、マスターが指定されていないことが原因です。このコードは、Foo と Boo という 2 つのクラスを定義しており、それぞれに他のクラスを指すナビゲーション プロパティが含まれていますが、どちらの端が優先されるかは指定されていません。
メイン端末の定義
1 対 1 の関係では、マスターが関係を所有し、外部キー制約を管理します。通常、これは関連付けのより安定した長期的な終端となります。データベース設計では、通常、主側は主キーによって識別されます。
例と解決策
指定された例では、Boo インスタンスの存在に依存しないため、Foo クラスが論理マスターです。対照的に、クラス Boo は、関連付けられた Foo なしでは存在できません。
Entity Framework のエラーを解決するには、マスターを明示的に指定する必要があります。これは、データ アノテーションまたは流暢なマッピングを通じて実現できます。データ アノテーションを使用して、Boo クラスを次のように変更します:
<code>public class Boo { [Key, ForeignKey("Foo")] public string BooId{get;set;} public Foo Foo{get;set;} }</code>
代わりに、Fluent マッピングを使用します:
<code>modelBuilder.Entity<Foo>() .HasOptional(f => f.Boo) .WithRequired(s => s.Foo);</code>
マスターを指定することで、エラーを効率的に解決して、Entity Framework で 1 対 1 の関係を定義および管理できます。
以上が主目的を定義することで Entity Framework の 1:1 関係のあいまいさを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。