我有这样的课:
class Tree
{
[Key]
public int TreeID { get; set; }
public int? ParentID { get; set; }
public int ID { get; set; }
public string Name { get; set; }
public virtual Tree Parrent { get; set; }
public virtual ICollection<Tree> Children { get; set; }
}
和配置类:
class TreeConfiguration : EntityTypeConfiguration<Tree>
{
public TreeConfiguration()
{
this.HasOptional(d => d.Parrent)
.WithMany(p => p.Children)
.HasForeignKey( d => d.ParentID)
.WillCascadeOnDelete(false);
}
}
它工作得很好,但我想要的是子节点使用 ID(来自父节点)作为 ParentID,而不是 TreeID。
它应该像这样工作:每个节点都有一个 id - 即 ID - 和其父节点的 id - 即 ParentID。TreeID 是主键,它与子父映射无关 - 它仅用于数据库。
我无法更改列,所以我必须是这样