使用LINQ创建类似层次结构的面包屑

Div*_*Dan 3 .net c# linq linq-to-entities breadcrumbs

我正在构建一个类似Dropbox的应用程序来存储图像.

我有一个名为Images的数据库表:

ImageId [PK]
ParentImageId [FK]
Name
Path
Run Code Online (Sandbox Code Playgroud)

我想从上面的结构创建一个面包屑,让我说我有以下数据:

在此输入图像描述

是否可以使用LINQ创建一个看起来像的痕迹(如果我在子文件夹2):

Folder 1 > Sub Folder 1 > Sub Folder 2
Run Code Online (Sandbox Code Playgroud)

如何构建查询以返回所需的结果?任何帮助都会有很大的帮助!

Dmi*_*tov 5

使用Entity Framework,您可以执行下一步:

在此输入图像描述

代码看起来像这样:

var image = db.Images.FirstOrDefault(i => i.Id == currImageId);

var imagesHierarchy = new List<Image>();
if (image != null)
{
    var parent = image.Parent;
    while (parent != null)
    {
        imagesHierarchy.Insert(0, parent);
        parent = parent.Parent;
    }
}

var breadcrumb = string.Join(" > ", imagesHierarchy.Select(i => i.Name));
Run Code Online (Sandbox Code Playgroud)