• システム開発に関わる内容をざっくりと書いていく

条件が合致した時にフィルタリングをかける(IQueryable)

用途:

条件が入っている時にのみフィルタリングするような場面で使用

public static IQueryable<TSource> WhereIf<TSource>(this IQueryable<TSource> Source, bool Condition, Expression<Func<TSource, bool>> Predicate)
{
    if (Condition)
        return Source.Where(Predicate);
    else
        return Source;
}

第一パラメタの引数がTrueである場合のみ、フィルタリングをして返す。

使用例

return _dbContext.M_Item.WhereIf(!string.IsNullOrEmpty(itemSearchKey.ItemNm), item => item.ItemNm == itemSearchKey.ItemNm);

ItemNmが入っている時のみ、ItemNmの比較でのフィルタリングを行う。