没有从简单查询中获得结果

本文关键字:结果 查询 简单 | 更新日期: 2023-09-27 18:20:02

我尝试了以下操作,它给我返回了每个教程

List<Tutor>tutorsList = tutors.ToList();

此外,我试图只选择具有特定主题的导师(导师主题是n:n)

Subject subjectEntity = subjects.Where(s => s.Name == input).FirstOrDefault();
List<Tutor>tutorsList = tutors.Where(t => t.Subjects.Contains(subjectEntity)) .ToList();

结果,我的tutorsList是空的,甚至subjectEntity也是正确的(我把它打印到控制台)。但当我循环每个导师并打印主题时,会有一个主题为input的导师。

有什么想法吗?

没有从简单查询中获得结果

如果您也有id,您可以执行以下操作:

Subject subjectEntity = subjects
    .Where(s => s.Name == input)
    .FirstOrDefault();
List<Tutor> tutorsList = tutors
    .Where(t => t.Subjects
        .Select(x => x.SubjectId)
        .Contains(subjectEntity.SubjectId)
    )
    .ToList();

如果没有,您可以尝试在单个查询中进行

List<Tutor> tutorsList = tutors
    .Where(t => t.Subjects.Any(x => x.Name == input))
    .ToList()

在处理内部集合时,使用Any在一行中进行简化。

var tutorsList = tutors.Where(t => t.Subjects
                                    .Any(s => s.Name == input)).ToList();

尝试低于

Subject subjectEntity = subjects.Where(s => s.Name == input).FirstOrDefault();
List<Tutor>tutorsList = tutors.Where(t => t.Subjects.Any(x=>x.UniqueField==subjectEntity.UniqueField)).ToList();