我的数据库有一个学生表:
StudentID int PK
StudentName varchar
FamilyID int (Nullable)
如果一个学生在数据库中有 sibling ,他们将共享一个 familyID。如果学生没有 sibling ,则 familyID 应为空。
使用 Linq,给定 StudentID,如何返回包含学生及其所有 sibling (如果有)的列表?
最佳答案
join
和 into
应该可以解决问题。
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/