C# 使用Linq将一次命中的层次结构加载到数据库
我们有一个表结构,类似于带有订单行表的订单表,我们根据用户需求定义了表中项目的层次结构,方法是在每个级别存储一个由逗号分隔的记录id列表组成的字符串。这允许用户根据需要“重新排序”其线路 e、 g 顺序上的层次结构字符串可能类似于“3,2,4”,这意味着它的顶级子级是第3,2,4行(按该顺序)。 第一个订单行可能有自己的层次结构字符串,如“5,6”,表示它有嵌套的子项,这些子项应该出现在它下面 我们希望以对象的平面列表的形式返回此数据结构,并标记其在层次结构中的“深度”。例如,如果数据如下所示: 标题: 线: 我们需要这样一个简单的列表(按此顺序):C# 使用Linq将一次命中的层次结构加载到数据库,c#,sql,postgresql,linq,C#,Sql,Postgresql,Linq,我们有一个表结构,类似于带有订单行表的订单表,我们根据用户需求定义了表中项目的层次结构,方法是在每个级别存储一个由逗号分隔的记录id列表组成的字符串。这允许用户根据需要“重新排序”其线路 e、 g 顺序上的层次结构字符串可能类似于“3,2,4”,这意味着它的顶级子级是第3,2,4行(按该顺序)。 第一个订单行可能有自己的层次结构字符串,如“5,6”,表示它有嵌套的子项,这些子项应该出现在它下面 我们希望以对象的平面列表的形式返回此数据结构,并标记其在层次结构中的“深度”。例如,如果数据如下所示:
这可以通过实体框架中的某种连接过程一次完成,而不是通过我们的记录循环并在我们前进的过程中建立起来,还是我们太雄心勃勃了?这不是问题的答案,但在这个概念性问题上有一些很好的背景阅读。
{Line1Object}, 1
{Line3Object}, 2
{Line2Object}, 2
{Line4Object}, 2
{Line5Object}, 3
{Line6Object}, 3