2016-09-22 3 views
1

dbcontext를 구현하는 기본 클래스에서 파생 된 컨텍스트가 있습니다.OnModelCreating에서 상속 된 매핑 오버라이드

protected override void OnModelCreating(ModelBuilder builder) 
{ 
    base.OnModelCreating(builder); 
    builder.Entity...(add my customization) 
} 

는 파생 맥락에서 "isUnique에"를 드롭 할 수 있습니다 :

protected override void OnModelCreating(ModelBuilder builder) 
{ 
    builder.Entity<TUser>(b => 
    { 
     b.HasIndex(u => u.NormalizedUserName).HasName("UserNameIndex").IsUnique(); 
     ... 
    } 
} 

클래스 OnModelBuilder을 유도하십시오 기본 클래스 OnModelCreating는 같다?

+0

이 (HasAlternateKey''로 작성) 고유 제한하지만 고유 인덱스가 아니다. 어쨌든 "드롭"이란 무엇을 의미합니까? 완전히 삭제합니다 (예 : 색인을 만들지 마세요)? –

+0

NormalizedUserNames를 복제하려고합니다. ID (int)를 기반으로하고 중복 될 수있는 UserNames를 기반으로하지 않는 사용자와 작업하고 있습니다. –

답변

1

일반적으로 HasKey, HasAlternateKey, HasIndex과 같은 것을 만드는 매핑은 실행 취소 할 수 없습니다. 그러나 가능한 경우 속성을 변경할 수 있습니다. 이 특별한 경우

, 당신은 IsUnique 방법의 선택적 매개 변수에 대한 false를 지정하여 인덱스가 아닌 독특한 만들 수 있습니다

protected override void OnModelCreating(ModelBuilder builder) 
{ 
    base.OnModelCreating(builder); 
    builder.Entity<TUser>(b => 
    { 
     b.HasIndex(u => u.NormalizedUserName).IsUnique(false); 
     ... 
    } 
}