を実行します。私は、私はむしろ、思いOR例えば私は2 IQueryables持っている2 LINQ IQueryables
public static IQueryable<Counterparty> SearchByCodeOrName(this IQueryable<Counterparty> queryable, string searchQuery)
{
// return SearchByName(searchQuery) OR SearchByCode(searchQuery)
}
として2つのクエリを組み合わせた別のIQueryableを作成したい
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()));
}
をコードの重複を避けるため、新しいラムダ式を書き直すのではなく、既存のクエリー可能なものを再利用したいWhere(x=> x.Code.StartsWith.... || x.Name.Contains.....)
これは実際に私自身が思いついた方法です!いい答えだ! – reach4thelasers
@ reach4thelasers:[AlbaharisのPredicateBuilder](http://www.albahari.com/nutshell/predicatebuilder.aspx)と[このEF/ORMのフレンドリーなバージョン](http://petemontgomery.wordpress)をチェックしてください。 com/2011/02/10/a-universal-predicatebuilder /)と[リンク先の説明](http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities -combining-predicates.aspx)では、式を使用して問題の問題を解決する方法について説明します。 :-) –