根据我对几个帖子的理解,使用共享主键时,使用EF的TPT架构不会创建必要的ON DELETE CASCADE ....还有人说,EF上下文将处理删除子的正确顺序-classed表(但我得到一个错误,它打破了约束,我可以通过在子类表上添加ON DELETE CASCADE来修复它)...
更多背景信息......
我有一个Section类,它有一个数字,标题和一个页面列表.该页面使用一个包含基本页面属性的超类来设计.我有大约10个以上的页面类子类.Section类包含这些页面的ICollection.除了在子类表上没有ON DELETE CASCADE之外,DB正确创建.
我的代码将创建实体并添加到数据库中.但是,如果我尝试删除一个部分(或所有部分),由于我的子类页面表上的FK约束,它无法删除...
public abstract BaseContent
{
... common properties which are Ignored in the DB ...
}
public class Course : BaseContent
{
public int Id {get;set;}
public string Name {get;set;}
public string Descripiton {get;set;}
public virtual ICollection<Chapter> Chapters{get;set;}
...
}
public class Chapter : BaseContent
{
public int Id {get;set;}
public int Number {get;set;}
public string Title {get;set;}
public virtual Course MyCourse{get;set;}
public virtual ICollection<Section> Sections{get;set;}
...
}
public class …Run Code Online (Sandbox Code Playgroud)