我有以下实体:
public class Level
{
public int LevelId { get; set; }
public int? ParentLevelId { get; set; }
public string Name { get; set; }
public virtual Level Parent { get; set; }
public virtual HashSet<Level> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在这里遇到麻烦的是Children属性,它在Fluent API中是这样配置的:
modelBuilder.Entity<Level>()
.HasOne(x => x.Parent)
.WithMany(x => x.Children)
.HasForeignKey(x => x.ParentLevelId);
Run Code Online (Sandbox Code Playgroud)
这导致迁移添加了一些其他列:
migrationBuilder.AddColumn<int>(
name: "LevelId1",
table: "Level",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Level_LevelId1",
table: "Level",
column: "LevelId1");
migrationBuilder.AddForeignKey(
name: "FK_Level_Level_LevelId1",
table: "Level",
column: "LevelId1",
principalTable: …Run Code Online (Sandbox Code Playgroud) 根据我的模型,我想一次将数据提取为树列表。
public class FolderInResearch : EntityBase
{
public FolderInResearch()
{
SubFolders = new List<FolderInResearch>();
}
public string Name { get; set; }
public Guid? ParentFolderId { get; set; }
[ForeignKey("ParentFolderId")]
public ICollection<FolderInResearch> SubFolders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)