C#从数据库检索传递数据

时间:2018-09-04 18:35:21

标签: c# sql-server

相对较新的程序员在这里尝试解决一项可能让我有些头疼的任务。

我正在尝试创建一种方法,该方法将返回某项的所有传递关系。具体来说,我有一个简单的表格,其中包含可能直接或间接相互关联的项目:

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查询,而且每次运行这样的查询也不理想需要搜索一个项目。有哪些选项可以有效查询表并检索相关项目?

谢谢!

1 个答案:

答案 0 :(得分:0)

递归CTE是最有效的选择。如果需要通过linq查询,可以将其放在VIEW中。