我有一家商店,其类别存储在如下数据库中:
使用ParentCategoryId将类别彼此嵌套,并且根父ID为0。
我想知道如何最多检索不超过3个级别的类别列表?
注意:对我来说重要的一点是,如果可能的话,可以通过输入参数来调整最大级别数。
答案 0 :(得分:1)
每个级别的循环怎么样?
public void GetCategories(int level) {
var categories = db.Categories.Where(c => c.ParentCategoryId == 0).ToList();
var parents = categories.Select(c => c.Id);
for (var ii = 0; ii < level; ii++) {
var newCategories = db.Categories.Where(c => parents.Contains(c.ParentCategoryId).ToList();
parents = newCategories.Select(c => c.Id);
categories = categories.Concat(newCategories);
}
var result = categories;
}
我想您需要所有级别,而不仅仅是最后一个级别。