我有你Category
自己的默认场景,RootCategory
并且ChildCategories
. 如何指定我的流利模型构建器在删除时级联所有子类别?
模型
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Category RootCategory { get; set; }
public virtual ICollection<Category> ChildCategories { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
我试过的
我曾尝试使用流利的模型构建器,但是当我尝试更新数据库时,这个会出错。
在表 'Categories' 上引入 FOREIGN KEY 约束 'FK_dbo.Categories_dbo.Categories_RootCategory_Id' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>().HasOptional(x => x.RootCategory).WithMany(x => x.ChildCategories).WillCascadeOnDelete(true);
}