Asp.net core mvc 迁移到MVC6/EF7:PluralizingTableNameConvention

Asp.net core mvc 迁移到MVC6/EF7:PluralizingTableNameConvention,asp.net-core-mvc,entity-framework-core,Asp.net Core Mvc,Entity Framework Core,我正在将我的MVC5应用程序迁移到MVC6。目前我使用两种约定 public class RentABikeDbContext : DbContext { ... protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Conventions.Rem

我正在将我的MVC5应用程序迁移到MVC6。目前我使用两种约定

    public class RentABikeDbContext : DbContext
{
    ...

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    }
}
public类RentABikeDbContext:DbContext
{
...
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
modelBuilder.Conventions.Remove();
modelBuilder.Conventions.Remove();
}
}

但是,在MVC6/EF7中,新的Microsoft.Data.Entity.ModelBuilder类上似乎没有Conventions属性。EF7指定约定的正确方式是什么

实体框架7没有任何内置的复数化,因此那里没有要删除的内容,而且级联删除尚未实现

迭代所有实体,获取外键,并将其设置为delete Restricted:

foreach (var relationship in builder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
    relationship.DeleteBehavior = DeleteBehavior.Restrict;
}

谢谢这解决了我眼前的问题,但仍然没有回答如何在实现级联删除功能时禁用级联删除功能的问题