两个流利的不同之处 - CodeFirst

时间:2016-01-18 06:21:13

标签: c# entity-framework ef-code-first fluent

我有一张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不起作用!

0 个答案:

没有答案