Entity Framework 1:1 관계의 마스터 측 정의
주 터미널은 무엇인가요?
1:1 관계에서는 한 엔터티를 마스터로 지정하고 다른 엔터티를 슬레이브로 지정해야 합니다. 마스터는 관계를 소유하거나 관계 유지를 담당하는 개체이고, 슬레이브는 마스터 개체의 존재에 의존합니다.
코드 오류 분석
Entity Framework에서 발생하는 오류는 메인 측에서 Foo와 Boo의 관계를 명확하게 정의하지 않았기 때문에 발생합니다. Entity Framework에서는 하위 엔터티의 외래 키로 사용될 엔터티의 기본 키를 결정하기 위해 이 사양이 필요합니다.
마스터와 슬레이브의 1:1 관계
귀하의 코드에서 Foo와 Boo의 관계는 일대일 관계입니다. 마스터를 식별하는 방법은 다음과 같습니다.
귀하의 예에서 Foo는 Boo 엔터티와 독립적으로 존재할 수 있으므로 마스터가 되어야 합니다. 반면에 Boo는 Foo 기본 키를 데이터베이스에 삽입해야 하기 때문에 Foo에 의존합니다.
기본 터미널 구성
Entity Framework에서 1:1 관계의 마스터 측을 구성하는 방법에는 두 가지가 있습니다.
유창한 매핑:
<code class="language-csharp">modelBuilder.Entity<Foo>() .HasOptional(f => f.Boo) .WithRequired(s => s.Foo);</code>
데이터 주석:
<code class="language-csharp">public class Foo { [Key] public string FooId { get; set; } public Boo Boo { get; set; } } public class Boo { [Key, ForeignKey("Foo")] public string BooId { get; set; } public Foo Foo { get; set; } }</code>
마스터를 정의하면 Foo가 관계를 소유하고 Boo는 해당 Foo 레코드가 있는 경우에만 존재할 수 있음을 지정합니다.
위 내용은 Entity Framework의 1:1 관계에서 주요 목적을 어떻게 정의합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!