我从实现dbcontext的基类中获得了一个派生上下文。基类 OnModelCreating类似于:
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"?
一般来说,创建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);
...
}
}