Linq查询返回正确数量的结果,除第一个结果外,所有结果都为null

本文关键字:结果 第一个 null 查询 Linq 返回 | 更新日期: 2023-09-27 17:57:54

我正在尝试使用查找表ProjectFollower获取User的列表。这是我正在使用的查询。它返回一个包含4个项目的列表。列表中的第一项有一个值,接下来的三项为空。事实上,数据库中有4个结果。为什么除了第一个以外都为null?

 subscribers = project.ProjectFollower.Select(u => u.User).ToList(); 

更新以获得清晰度。

ProjectFollower表对此项目有4个条目,具有4个不同的UserID和相同的ProjectID。这4个UserID对应于现有用户。

Linq查询返回正确数量的结果,除第一个结果外,所有结果都为null

subscribers = project.ProjectFollower
.Where(u => u.User != null)
.Select(u => u.User).ToList(); 

Per Jon的评论。问题出在查询上。

我有

                var project = db.Projects
                    .Include(i => i.ProjectFollower)
                    .Include(i => i.User)
                    .SingleOrDefault(i => i.ProjectID == project_id);

我把它改成

                var project = db.Projects
                    .Include(i => i.ProjectFollower)
                    .Include(i => i.ProjectFollower.Select(v => v.User))
                    .Include(i => i.User)
                    .SingleOrDefault(i => i.ProjectID == project_id);