私は2つのIQueryablesを持っています:
public static IQueryable<Counterparty> SearchByCode(this IQueryable<Counterparty> queryable, string searchQuery)
{
return queryable.Where(x => x.Code.StartsWith(searchQuery.ToUpper()));
}
public static IQueryable<Counterparty> SearchByName(this IQueryable<Counterparty> queryable, string searchQuery)
{
return queryable.Where(x => x.Name.ToLower().Contains(searchQuery.ToLower()));
}
2つのクエリをORとして組み合わせた別のIQueryableを作成したい。
public static IQueryable<Counterparty> SearchByCodeOrName(this IQueryable<Counterparty> queryable, string searchQuery)
{
// return SearchByName(searchQuery) OR SearchByCode(searchQuery)
}
コードの重複を避けたいので、次のような新しいラムダ式を書き直すのではなく、既存のクエリ可能オブジェクトを再利用したいと思います。Where(x=> x.Code.StartsWith.... || x.Name.Contains.....)