Это должно быть просто, но я не продвигаюсь по этой проблеме. Я хочу написать оператор LINQ, который возвращает человека, соответствующего данному идентификатору, и включает в себя набор посещений. Это я могу сделать. Теперь мне нужно включить только активные посещения, то есть включать посещение, только если флаг IsActive является истинным. Мой запрос приведен ниже. Что я делаю не так?Как использовать условие .Where() с .Include()?
var inmate = this.db.Inmates.Where(p => p.Id == id).Include(p => p.Visits.Where(v => v.IsActive)).FirstOrDefault();
Update # 1 - Я также попытался это заявление:
var inmate = this.db.Inmates.Include(p => p.Visits).Where(p => p.Id == id && p.Visits.Any(v => v.IsActive)).FirstOrDefault();
Вы видели этот вопрос SO http://stackoverflow.com/questions/1680863/linq-include-with-where-clause? –
Я считаю, что вы пытаетесь сделать условную загрузку, когда, когда вы получаете доступ к inmateObject.Visits, вам нужен только список активных посещений. Это уже обсуждается здесь; http://stackoverflow.com/questions/3718400/conditional-eager-loading –
@prashantht Я согласен. Я действительно не думаю, что есть какой-то способ сделать это, кроме как они предложили в вашей ссылке. –