Migrating to MVC6 / EF7: PluralizingTableNameConvention



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

    public class RentABikeDbContext : DbContext
{
    ...
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    }
}

然而,看起来在MVC6/EF7中,新的Microsoft.Data.Entity.ModelBuilder类上没有Conventions属性。EF7指定约定的正确方法是什么?

Entity Framework 7没有任何内置的复数形式,所以没有什么可以删除的,级联删除尚未实现https://github.com/aspnet/EntityFramework/issues/333

遍历所有实体,获取外键,并将它们设置为Delete Restricted:

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

相关内容

  • 没有找到相关文章

最新更新