我想获取当前类别中的所有项目以及链接到当前类别的所有子类别。目前我使用递归函数这样做,但我怀疑它可以通过修改查询来完成。主要原因是我想使用.Skip()
,.Take()
但如果我仍然必须首先使用递归来获取所有类别,这不会有任何区别。
数据库
我想要做的我的递归函数
public static IQueryable<Models.Item> Items(int id, List<Models.Item> items)
{
if (items == null)
{
items = new List<Item>();
}
ModelDataContext _db = new ModelDataContext();
var currentCategory = _db.Categories.Where(x => x.ID == id).Single();
items.AddRange(currentCategory.Items);
foreach (var c in currentCategory.Categories)
{
Items(c.ID, items);
}
return items.AsQueryable();
}
tl;博士;
具有递归函数,可获取类别和子类别中的所有项目。想知道仅通过 LINQ 本身是否有可能。