|
|
1
2
这不是一个直接的答案,但是你遇到的问题与你存储树的方式有关。有两种方法可以通过不同的数据结构简化此查询。 一是使用 Nested Set Hierarchy ,它可以简化跨树的多种查询。 另一种方法是存储祖先/子代/深度元组的表示化表。然后,此查询将查找当前结构为具有最大深度的子体的元组。 |
|
2
2
我想最好的办法是从我想要的顶级父级结构中一次性加载整个层次结构:
然后使用代码:
|
|
|
3
0
我也有类似的情况。我没能用LINQ/EF直接解决这个问题。相反,我通过使用递归公共表表达式创建数据库视图来解决这个问题,如前所述 here . 我创建了一个用户定义函数,该函数交叉应用所有父对象到一个子对象(反之亦然),然后创建了一个视图,该视图使用了我导入到EF对象上下文中的该用户定义函数。 (免责声明:简化代码,我并没有实际测试这个) 我有两个表,比如MyTable(包含所有项)和MyParentChildTable(包含ChildId,ParentId关系) 然后我定义了以下自定义项:
以及以下视图:
这就给了我每个孩子,所有的父母都有他们的“树级”(直接父母有1级,父母的父母有2级,等等)。从这个视图中,可以很容易地查询具有最高级别的项。我刚刚在EF上下文中导入了视图,以便能够用LINQ查询它。 |
|
|
4
-1
我喜欢这个问题,想不出一个可行的办法。但您可以在您的存储库类上实现它吗?毕竟,高层应该只有一个,如果有必要的话,也许它应该
|
|
|
5
-4
例如,可以使用linq take构造
|
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
|
Pavel Foltyn · 如何在C中生成逆字典# 1 年前 |
|
ewok · 基于种子和上一个值创建值列表 1 年前 |
|
|
Vasu V · 将foreach转换为select语句 2 年前 |
|
Modest · 使用命名空间和文本值序列化xElement 2 年前 |