我正在构建一个带有“闭包表”的分层数据库来构建树 它是一个自引用表,这两个键应该成为主键。
问题是,当我期望只有3列时,我最终会得到5列。
以下是我的尝试:
public class Tree
{
public int TaskId { get; set; }
public Task Task { get; set; } //navigation Property to TaskTable
public int? ChildId { get; set; }
public Tree Child { get; set; } //navigation Property
public int Length { get; set; } //Length
}
public class Task
{
public int TaskId { get; set; }
public virtual ICollection<Tree> Trees { get; set; }
}
modelBuilder
.Entity<Task>()
.HasKey(t => t.TaskId);
modelBuilder
.Entity<Tree>()
.HasKey(a => new { a.TaskId, a.ChildId });
结果是一个包含5列的表:
我期待:
我猜测一些流利的api缺失,但我无法开始工作?