如何将.Where()条件与.Include()一起使用?

时间:2012-06-25 01:37:00

标签: c# linq .net-4.0

这应该是直截了当的,但我在这个问题上没有取得任何进展。我想写一个LINQ语句,它返回一个匹配给定ID并包含一组访问的人。我能做到的。现在,我只需要包含活动访问,仅当IsActive标志为true时才包括访问。我的查询包含在下面。我做错了什么?

var inmate = this.db.Inmates.Where(p => p.Id == id).Include(p => p.Visits.Where(v => v.IsActive)).FirstOrDefault();

更新#1 - 我也试过这句话:

var inmate = this.db.Inmates.Include(p => p.Visits).Where(p => p.Id == id && p.Visits.Any(v => v.IsActive)).FirstOrDefault();

1 个答案:

答案 0 :(得分:0)

试试这个:

var inmate = this.db.Inmates.Where(i => i.Visits.Any(x => x.IsActive))

注意:代码假定IEnumerable<Visits>Inmate对象的属性。