C# .net Linq命令没有';不能返回某些字段

C# .net Linq命令没有';不能返回某些字段,c#,.net,linq,C#,.net,Linq,我遇到了一个问题,对象返回为null,即使它们通过了linq测试,并且我可以看到数据库中的值,我无法确定要去哪里解决这个问题。我通常不是c#开发者,所以这对我来说是一个新领域 我的桌子看起来像 Class Meeting { ... public virtual List<MeetingParticipant> Participants { get; set; } ... } Class MeetingParticipant { public bool isOrganise

我遇到了一个问题,对象返回为null,即使它们通过了linq测试,并且我可以看到数据库中的值,我无法确定要去哪里解决这个问题。我通常不是c#开发者,所以这对我来说是一个新领域

我的桌子看起来像

Class Meeting {
...
public virtual List<MeetingParticipant> Participants { get; set; }
...
}

Class MeetingParticipant {
    public bool isOrganiser { get; set; }
    public Account Participant { get; set; }
    public ParticipatingState ParticipatingState { get; set; }
    public string responseText { get; set; }
}
令人烦恼的是,当我深入挖掘返回的meetup对象时,有参与者,但他们的Account对象为空。然而,为了让meetup通过linq请求,它必须存在,这样我才能比较它的电话号码。
我遗漏了什么?

对Linq命令进行简单的调整可以得到想要的结果:

var meetings = from m in _context.Meetings.Include(val => val.Participant)
               where m.Participants.Any(val => val.Participant.PhoneNumber == passedInPhoneNumber && val.ParticipatingState == ParticipatingState.Pending)
               select m;
.Include(val=>val.Participant)
是这里的魔法——它告诉EF“急切地”加载并在结果中填充该实体

在此处了解有关快速加载的更多信息:

编辑:如Beau评论中所述,要使其生效,您需要添加以下using语句:

using System.Data.Entity; 

您需要
Include()
相关实体。这是否回答了您的问题?我看到了这个,但第一次试的时候就没用了。尽管有了您的反馈,我还是深入了解了一下,我是否注意到我没有正确地从Nuget导入某些框架,并且“Include”函数还没有出现在项目中。那和你的例子正是我需要的!谢谢你的帮助!
using System.Data.Entity;