2012-01-19 3 views
1

코드를 사용하여 Entity Framework (4.2)에서 일대일 관계를 만들고 싶습니다 첫 번째 유창한 구성 API를 사용하려면 링크 /지도 테이블을 사용해야합니다.유창한 구성으로지도/링크 테이블을 사용하여 EF 코드에서 일대일 관계를 처음 만드는 방법

다음은 내 테이블 레이아웃 다이어그램입니다.

1-to-1 relationship with link table

이 난 후 나는 무엇을 ...

HasOptional(x => x.FieldPerson) 
    .WithOptionalPrincipal() 
    .Map(map => 
      { 
       map.ToTable("user_account__field_person"); 
       map.MapLeftKey("user_account_id"); 
       map.MapRightKey("field_person_id"); 
      }); 

...하지만 그것을 할 수있는 방법이있을 것 같지 않습니다.

다른 방법으로 내 3 엔티티를 만들고 필요에 따라 조인을 사용하여 직접 관리 할 수 ​​있습니다.

EF Fluent API가 처리 할 수없는 시나리오일까요?

답변

1

나는 내 자신의 질문에 다시 답할 것이다!

링크 /지도 테이블의 전체 개념이 다 대 다 관계를 제시하기 때문에 EF 코드가이 상황을 먼저 다룰 것으로 생각하지 않습니다.

내 경우에는 이것이 데이터베이스 우선 상태이며 데이터베이스를이 단계로 변경할 수 없으므로이 테이블을 처리해야합니다. 내가 무슨 짓을했는지

사용하는 다 대다 코드를 먼저 구성 ...

많은에 많은 만들기에서 저를 방지하기 위해 내 데이터베이스 스키마에 아무것도 없기 때문에
HasMany(t=>t.FieldPersons) 
    .WithMany(t=>t.UserAccounts) 
    .Map(map => 
      { 
       map.ToTable("user_account__field_person"); 
       map.MapLeftKey("user_account_id"); 
       map.MapRightKey("field_person_id"); 
      }); 

... 관계. 그 행동을 원한다면 각 필드에 고유 한 제약 조건을 추가하기 만하면됩니다 (EF 코드는 먼저 지원하지 않습니다)