我正在尝试创建(在我看来)非常简单的设置,但我无法弄清楚为什么在运行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的新手,所以我可能在不知情的情况下接近了这个错误。我很感激任何帮助来建立正确的关系。