2016-09-22 63 views
1

我從實現dbcontext的基類派生了一個上下文。該基地類OnModelCreating是這樣的:覆蓋OnModel中的繼承映射創建

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

派生類OnModelBuilder:

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

是否有可能掉落 「isUnique設置」 中的推導的情境?

+0

這不是唯一約束(這與'HasAlternateKey'創建),但唯一索引。無論如何,你是什麼意思的「下降」 - 完全刪除它,即不創建這樣的索引? –

+0

我想允許重複NormalizedUserNames。我正在與基於ID(int)的用戶合作,而不是基於可能重複的UserNames。 –

回答

1

一般來說,創建類似HasKeyHasAlternateKeyHasIndex的映射無法撤消。但是你可以在可能的時候改變它們的屬性

在這種特殊情況下,你可以賺了指數不唯一由IsUnique方法的可選參數,指定false

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