我正在使用EF Core 2.1。我有一个具有以下属性的Group对象:
该对象使用ParentGroupId属性引用其父级的GroupId。查询时未知层次结构的深度。如何检索整个层次结构?
我尝试了以下操作,这将使我更深入三个层次,但是如何在不知道深度的情况下获得层次结构的所有层次?我需要依赖存储的proc吗?
var group = await _membershipDbContext.Groups
.Include(g => g.ParentGroup)
.ThenInclude(g => g.ParentGroup)
.SingleOrDefaultAsync(g => g.GroupId == id);
答案 0 :(得分:2)
您有三个选择:
哪种方法最适合您,取决于您的独特用例和要加载的数据量。 选项1和2并没有什么不同,但是使用选项2可以控制何时加载对象。选项3可能是最有效的,但在保存更改(手动更改对象图时)时可能会出现问题。