Linq查询返回正确的结果数,除了第一个都是null

时间:2013-02-06 17:24:57

标签: c# linq lambda entity-framework-5

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

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

更新

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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);