在OnModelCreating中重写继承映射



我从实现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);
       ...
    }
}

相关内容

  • 没有找到相关文章

最新更新