2

저는 엔티티 프레임 워크 코어 2.0에서 간단한 일대일 관계를 사용하고 있습니다.데이터베이스가 일대일 관계를 어떻게 표현합니까?

modelBuilder.Entity<Profile>() 
     .HasOne(p => p.Avatar) 
     .WithOne() 
     .HasForeignKey<Profile>(p => p.AvatarId); 

모든 프로필에는 하나의 아바타 만 있습니다.

데이터베이스 관리 앱을 살펴본 결과, 일대일 및 일대 다 관계의 차이점을 보여주지 못했습니다 (또는 적어도 찾지 못했습니다). 그래서 저는 일대일 방식의 일대 다 (One-to-One)와는 다른 특별한 제한을 찾을 수 없다는 것을 의미합니다.

데이터베이스는 내가 정의한 관계의 종류를 어떻게 알 수 있습니까? 모르는 경우 왜 내가 사용하고있는 관계 유형을 정의할까요?

+0

정말로 일대일 관계를 의미한다면, 왜 당신의 수업이 다른 수업의 작문이 아닌가? –

+3

차이점은 FK 열의 * unique * constraint/index입니다. –

답변

3

데이터베이스에 외래 키나 기본 키가 표시되지 않으면 알 수 없습니다. 또는 구체적으로 말하면, 관계를 위반하는 데이터를 저장할 수 있습니다. 관계의

무결성외래 키와 데이터베이스에 적용됩니다 그러나 이것은 확실히 잘못 테이블을 조인 SQL을 제출 멈추지 않습니다.

테이블의 데이터를 기반으로 일대일 관계가 보장되는 외래 키 정의 링크가 있습니다. http://www.tech-recipes.com/rx/56738/one-to-one-one-to-many-table-relationships-in-sql-server/.