IT이야기

MapKey 대 HasForeignKey 차이점 - Fluent Api

cyworld 2021. 9. 30. 21:55
반응형

MapKey 대 HasForeignKey 차이점 - Fluent Api


실제로 차이점은 무엇입니까?

this.HasRequired(a => a.Something)
    .WithMany()
    .Map(a => a.MapKey("SomethingId"));

그리고

this.HasRequired(a => a.Something)
    .WithMany()
    .HasForeignKey(a => a.SomethingId);

두 매핑 모두 null을 허용하지 않는 외래 키 SomethingId와 두 관련 테이블 간의 참조 제약 조건 을 사용하여 정확히 동일한 데이터베이스 스키마를 생성합니다 .

첫 번째 매핑 MapKey은 외래 키를 모델 클래스의 속성으로 원하지 않을 때 사용됩니다. 이 경우 연결 유형을 독립 연결 이라고 합니다. HasForeignKey외래 키가 모델의 속성인 경우 두 번째 매핑을 적용합니다 . 이 유형을 외래 키 연결 이라고 합니다.

많은 시나리오에서 외래 키 연결로 작업하는 것이 더 쉽지만 많은 사람들은 개체 세계에 관계형 아티팩트(외래 키)가 있는 것이 덜 깨끗하다고 ​​생각하므로 독립 연결을 선호합니다.

다음은 두 가지 유형의 연결과 장단점에 대한 참고 자료입니다.

참조URL : https://stackoverflow.com/questions/15595818/mapkey-vs-hasforeignkey-difference-fluent-api

반응형