相对较新的程序员在这里尝试解决一项可能让我有些头疼的任务。
我正在尝试创建一种方法,该方法将返回某项的所有传递关系。具体来说,我有一个简单的表格,其中包含可能直接或间接相互关联的项目:
ID | Item# | RelativeItem#
--------------------------
0 | Item1 | Item2
1 | Item2 | Item3
2 | Item4 | Item1
3 | Item5 | Item6
4 | Item7 | Item8
5 | Item8 | Item9
6 | Item10| Item6
7 | Item12| Item11
示例1:搜索Item1时应返回Item2(直接相关),Item3(间接相关)和Item4(间接相关)
示例2:搜索Item10应该返回Item5,Item6,Item7。 Item8和Item9
示例3:搜索Item11应该返回Item12
我最初的想法是利用递归CTE并返回结果,但是我很快意识到,不仅没有办法将其转换为Linq查询,而且每次运行这样的查询也不理想需要搜索一个项目。有哪些选项可以有效查询表并检索相关项目?
谢谢!
答案 0 :(得分:0)
递归CTE是最有效的选择。如果需要通过linq查询,可以将其放在VIEW中。