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...このクエリが null または空の場合の結果も返します。

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 に答える