0

我有一个表 Asset 存储文件和文件夹数据,其中 ParentDirectoryID 引用任何项目的父目录。现在在 UI 中的项目显示如下 -

文件夹 1 文件夹 2 文件夹 3 文件 1 文件 2

但在数据库中,它们可以按任何顺序存储,例如 -

文件 1 文件夹 1 文件 2 文件夹 2 文件夹 3 文件 3

现在我想启用对 UI 上显示的数据的分页,但我面临的问题是如何获取前 X 条具有文件夹的记录,然后获取按名称排序的文件。

编辑:- AssetType 如下-文件夹 ImageFile TextFile Assembly 等...

4

2 回答 2

2

您可以使用ThenBy子句从数据库中获取第二次排序。

var source = query
    .OrderBy(item => item.FolderOrFile)
    .ThenBy(item => item.Name);
var pagedItems = source
    .Skip(itemsPerPage * requestedPage)
    .Take(itemsPerPage);

我有一个项目(在NuGet上)为您处理其中的一些功能。

于 2013-06-11T15:24:49.017 回答
1

通过使用OrderBy()扩展方法对资产类型(文件夹/其他)和.ThenBy()文件名进行排序。

于 2013-06-11T15:11:28.157 回答