2016-09-22 62 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); 
     ... 
    } 
}