【发布时间】:2017-08-18 18:49:36
【问题描述】:
当我尝试将自己指定为插入的父级时,出现以下错误。
无法确定相关操作的有效顺序。由于外键约束、模型要求或存储生成的值,可能存在依赖关系。
代码如下。我以为我可以做到这一点,但我想不会。如何在插入时执行此操作?
public class Team {
public int? TeamParentId { get; set; }
[ForeignKey("TeamParentId")]
public virtual Team TeamParent { get; set; }
public virtual ICollection<Team> Teams { get; set; }
}
发生错误的地方
divisionTeam.Team.TeamParent = divisionTeam.Team;
if (divisionTeam.Id == 0)
{
_divisionTeamsRepository.Add(divisionTeam);
}
UnitOfWork.Commit();
DataContext.cs
modelBuilder.Entity<Team>()
.HasOptional(p => p.TeamParent)
.WithMany(p => p.Teams)
.HasForeignKey(q => q.TeamParentId);
我怎样才能做到这一点?
【问题讨论】:
-
这里的实际问题是什么:为什么会出现此错误?或如何使用 EF 将实体设置为自己的父级?
-
我在文章的最后说明了我如何完成它。
标签: c# .net entity-framework ef-code-first