遷移到MVC6 / EF7:PluralizingTableNameConvention

asp.net-core-mvc entity-framework-core

我正在將我的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指定約定的正確方法是什麼?

一般承認的答案

實體框架7沒有任何內置的複數,因此沒有什麼可以刪除,並且尚未實現Cascade刪除https://github.com/aspnet/EntityFramework/issues/333


熱門答案

通過所有實體迭代,獲取外鍵,並將它們設置為Delete Restricted:

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



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因