使用实体框架。 具有树层次结构的简单页面类。
public class Page
{
public int Id { get; set; }
//...
public int ParentId { get; set; } //removing this solves the problem, but I would like to keep this line
public virtual Page Parent { get; set; }
public virtual ICollection<Page> SubPages { get; set; }
}
当我尝试添加对象和SaveChanges时出错:
无法确定'Models.Page_Parent'关系的主要结尾。多个添加的实体可能具有相同的主键。
我粗略地理解了这个问题,但不知道如何解决它。
答案 0 :(得分:1)
您是否尝试过定义关系?
this.HasRequired(page => t.Parent ).WithMany(t => t.SubPages).HasForeignKey(d => d.ParentId);
答案 1 :(得分:1)
使ParentId
属性可以为空。根元素不会有父元素。使用流畅的配置,如@ Jayantha的回答所示。
public class Page
{
public int Id { get; set; }
//...
public int? ParentId { get; set; } like to keep this line
public virtual Page Parent { get; set; }
public virtual ICollection<Page> SubPages { get; set; }
}