外键可能导致循环或多个级联路径

时间:2015-12-20 15:37:49

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-5

我正在尝试创建(在我看来)非常简单的设置,但我无法弄清楚为什么在运行Update-Database时我一直收到此错误:

  

在表'Breweries'上引入FOREIGN KEY约束'FK_dbo.Breweries_dbo.Pages_PageId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。

我正在尝试设置此结构:

Brewery> Page> IdentityUser

这是我的课程:

public class Brewery
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public Guid BreweryId { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    [ForeignKey("Page")]
    public Guid PageId { get; set; }

    public virtual Page Page { get; set; }

    public virtual ICollection<Image> Images { get; set; }
}

public class Page
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public Guid PageId { get; set;}
    [Required]
    public string Title { get; set; }

    public string Content { get; set; }
    [Required]
    [ForeignKey("CreatorUser")]
    public string CreatorUserId { get; set; }

    public virtual IdentityUser CreatorUser { get; set; }
}

我已经看过很多其他Stack Overflow帖子,似乎我应该在OnModelCreating中设置一些内容,但我无法做到正确。我希望避免在ICollection<Brewery> Breweries上有Page属性,因为我希望有许多不同的实体引用Page实体,而且Page与{{1}}无关。引用它。

我是Entity Framework和Code First的新手,所以我可能在不知情的情况下接近了这个错误。我很感激任何帮助来建立正确的关系。

0 个答案:

没有答案