【发布时间】:2016-03-26 18:11:42
【问题描述】:
我正在尝试创建一个(在我看来)非常简单的设置,但我无法弄清楚为什么我在运行 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 中设置一些东西,但我做错了。我想避免在Page 上使用ICollection<Brewery> Breweries 属性,因为我希望许多不同的实体都引用Page 实体,这与引用它的Page 无关。
我是 Entity Framework 和 Code First 的新手,所以我可能在不知不觉中处理了这个错误。对于正确设置关系的任何帮助,我将不胜感激。
【问题讨论】:
标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-5