2

我不太精通 linq,我试图消除在我的代码中复制一堆 linq 查询的需要。description如果字符串的值为 null 或空,我希望我可以修改此 linq 查询以返回一整页结果。目前它在这种情况下不返回任何结果。

所以基本上我想要这个查询......

return _entities.Schedules.Where(s => s.Description.ToLower().Contains(description.ToLower())))
                        .OrderByWithDirection(x => x.Description, dir)
                        .Skip((pageNumber - 1) * pageSize)
                        .Take(pageSize)
                        .ToList();

...还返回此查询如果description为空或为空时的结果。

return _entities.Schedules.OrderByWithDirection(x => x.Description, dir)
                            .Skip((pageNumber - 1) * pageSize)
                            .Take(pageSize)
                            .ToList();
4

1 回答 1

5

LINQ 是可组合的,因此您可以非常简单地执行以下操作:

IQueryable<Schedule> results = _entities.Schedules;

// Only filter on description if a search term has been given
if (!string.IsNullOrEmpty(description)) {
    results = results.Where(s => 
                  s.Description.ToLower().Contains(description.ToLower())))
}

return results.OrderByWithDirection(x => x.Description, dir)
              .Skip((pageNumber - 1) * pageSize)
              .Take(pageSize)
              .ToList();
于 2013-04-03T22:33:01.340 回答