我有一张updateCategory.PNG
表,它是递归的。它包含:
Category
我在Fluent下方用来设置:
public class Category
{
public Guid CategoryId { get; set; }
public string Name { get; set; }
public Category Parent { get; set; }
public Guid? ParentId { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
当我运行Project时出现此错误:
在表'Categories'上引入FOREIGN KEY约束'FK_dbo.Categories_dbo.Categories_ParentId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
修复它我改变Fluent如下:
HasOptional(row => row.Parent).WithMany(row => row.Categories)
.HasForeignKey(row => row.ParentId)
.WillCascadeOnDelete();
它的工作正常。
两个Fluent有什么不同?
我认为它们是相同的,但我不知道为什么第一个Fluent不起作用!