【发布时间】:2015-04-29 03:53:46
【问题描述】:
我对以下型号有疑问:
public class ProjectPage
{
[Key]
public Guid Id { get; set; }
public Guid? HeaderId { get; set; }
public ProjectPage Header { get; set; }
public Guid? FooterId { get; set; }
public ProjectPage Footer { get; set; }
}
在创建模型时我有这个:
modelBuilder.Entity<ProjectPage>().HasOptional(p => p.Header).WithMany().HasForeignKey(p => p.HeaderId).WillCascadeOnDelete(true);
modelBuilder.Entity<ProjectPage>().HasOptional(p => p.Footer).WithMany().HasForeignKey(p => p.FooterId).WillCascadeOnDelete(true);
但我无法更新数据库。我在包管理器控制台中遇到以下错误:
引入 FOREIGN KEY 约束 'FK_dbo.ProjectPages_dbo.ProjectPages_FooterId' 在桌子上 “ProjectPages”可能会导致循环或多个级联路径。指定开 DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
有人可以解释如何删除项目页面(可以是另一个项目页面中的页脚或页眉)吗?
【问题讨论】:
标签: c# entity-framework entity-framework-6