gpt4 book ai didi

c# - LINQ to SQL 查询父级并计算层次结构中的子级

转载 作者:行者123 更新时间:2023-11-30 18:06:53 28 4
gpt4 key购买 nike

我会接受 C# 和 VB.NET 的建议。

我正在使用 LINQ 查询数据。我正在尝试查询父标签并计算子标签。

这是我的标签表列:

TagId (int primary)
TagName
ParentId (int Allow NULL referred to TagId column)

这是一些示例数据:

TagId, TagName, ParentId

1, Web Design, NULL
2, HTML, 1
3, Programming, NULL
4, CSS 3, 1

问题一:在我的查询结果中,我想查询所有的父标签和子标签的总和。类似于以下内容:

Web Design (2 sub tags)
Programming (0 sub tags)

问题2:如果一个子标签也有自己的子标签

这是一些示例数据:

TagId, TagName, ParentId

1, Web Design, NULL
2, HTML, 1
3, Programming, NULL
4, CSS 3, 1
5, HTML 4, 2
6, HTML 5, 2

想要的查询结果:

Web Design (4 sub tags)
Programming (0 sub tags)

第二个问题是可选的,但如果你也能给点建议就更好了。谢谢。

最佳答案

public static IEnumerable<T> SelectDescendents<T>(this IEnumerable<T> source, Func<T, IEnumerable<T>> selector)
{
foreach(var item in source)
{
yield return item;
foreach(T item2 in SelectDescendents(selector(item), selector))
yield return item2;
}
}

编辑:用法:

Tags.where(t => t.tagID == 1).SelectDescendents(d => 
Tags.where(t.parentID == d.TagId)).Count();

关于c# - LINQ to SQL 查询父级并计算层次结构中的子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4384398/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com