c# - C#从数据库中检索传递数据
问题描述
相对较新的程序员在这里试图解决一个可能让我有点头疼的任务。
我正在尝试创建一个方法来返回一个项目的所有传递关系。具体来说,我有一个简单的表,其中包含可能彼此直接或间接相关的项目:
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。第 8 项和第 9 项
示例 3:搜索 Item11 应返回 Item12
我最初的想法是利用递归 CTE 并返回结果,但我很快意识到,不仅没有办法将其转换为 Linq 查询,而且每次项目需要时运行这样的查询也不理想被搜索。有哪些选项可以有效地查询表和检索相关项目?
提前致谢!
解决方案
递归 CTE 是最有效的选择。如果需要通过 linq 查询,可以将其放在 VIEW 中。
推荐阅读
- flutter - 颤振计算器问题
- java - 无法设置单选按钮的值
- sql-server - 在 MS SQL 下使用关联迁移时的问题
- javascript - Using JSON returned via PHP in Javascript
- sql - “CREATE TABLE”中的正则表达式
- google-apps-script - 添加用户电子邮件以显示谁编辑了行;当前反映日期和时间需要用户信息
- swift - 处理 Notifications 和 UserDefaults 键名的字符串名称的最常用方法是什么
- spring - Hibernate AliasToBean 转换器,CHAR(1) 到字符串:“预期类型 = java.lang.String”错误
- python - 更一般的帮助,我相信我应该使用“map(lambda ....)” -
- python - 仅打印异常原因列表