2016-11-04 2 views
0

기본 FK의 이름을 바꾸려고 시도하고 있지만 코드 첫 마이그레이션은 다른 이름을 가진 동일한 테이블에 두 번째 FK를 계속 생성하여 테이블 스키마를 엉망으로 만듭니다.다른 이름으로 중복 된 FK를 생성하는 EF 마이그레이션

FK 모델에는 ID라는 PK가 있습니다. 클라이언트의 요구 사항을 그대로 유지하면서 Id (이름)의 이름을 변경하고 싶습니다.

1) 생성 마이그레이션 :

Generated Migration

2) 매핑 :

Code First Map

어떻게해야합니까?

답변

0

CorpoGestor 엔터티가 외래 키 속성을 노출하는 경우 MapMapKey 대신 HasForeignKey을 사용하십시오.

HasRequired(x => x.Conselho) 
    .WithMany() 
    .HasForeignKey(x => x.IdConselho); 

또 다른 해결책 :

public class CorpoGestor 
{ 
    ... 

    public int IdConselho { get; set; } 

    [ForeignKey("IdConselho")] 
    public virtual Conselho Conselho { get; set; } 
} 

경고 : 엔티티의 속성을 사용하여 개념적으로 너무 멋져요없는 대신 CorpoGestorMap 클래스의 관계를 매핑의, 재산에 ForeignKey 속성을 사용할 수 있습니다 EntityTypeConfiguration 매핑 클래스에 코드를 구현하는 것입니다. 왜냐하면 EF 클래스에 보관해야하는 데이터 레이어 코드로 엔티티를 오염시키고 있기 때문입니다.