c# - 使用 linq 自引用连接

标签 c# linq

我的数据库有一个学生表:

StudentID int PK
StudentName varchar
FamilyID int (Nullable)

如果一个学生在数据库中有 sibling ,他们将共享一个 familyID。如果学生没有 sibling ,则 familyID 应为空。

使用 Linq,给定 StudentID,如何返回包含学生及其所有 sibling (如果有)的列表?

最佳答案

joininto 应该可以解决问题。

var query = from s in students
            join s2 in students.Where(x => x.StudentId != s.StudentId) on s.FamilyId equals s2.FamilyId into siblings
            select new
            {
              Student = s,
              Siblings = siblings,
            };

您可以添加一个 query.FirstOrDefault(x => s.StudentId == yourStudentId) 以获得特定的 StudentId

关于c# - 使用 linq 自引用连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379161/

相关文章:

c# - 从 XML 中删除出现的标记

c# - 如何在 LINQ 表达式中对多个级别进行排序?

c# - 如何在本地运行 ASP.NET C# Web 应用程序?

c# - 我的 MVC4 路由、参数、构造函数有什么问题?

c# - 为什么 IF 语句会影响我的 LINQ 语句的结果?

c# 数组属性基于其他数组

c# - 如何使用 Linq 和 C# 在集合中添加项目

c# - 什么在处置我的 WCF 对象,为什么?

c# - 如何在值元组中使用泛型类型?

c# - SQL CommandText 语法不正确