LINQスタイルの構文を使用するための非常に簡単な方法を実装しようとしています。例:カスタムLINQスタイルの実装
var res = ctx.Users.Where(x=>x.Name == "test" && x.Id > 1);
Where()
メソッドが実装しようとしているものです。
この考え方は、このWhere()
メソッドでデータソース固有のクエリを実行して、潜在的に利用可能なインデックスを使用してデータのサブセットをすばやくフェッチすることです。チェーンされた後続のメソッドは、LINQ-to-Objectsを使用してメモリ内のIEnumerableに対して実行されます。
は、私は、これは次の実装を使用して仕事を得ることができます:私は気づい
public IEnumerable<T> Where(Expression<Func<T, bool>> predicate)
{
//work with predicate body and return result of query
return new List<T>();
}
唯一の問題は、LINQの式のオブジェクトを構築する際に、パフォーマンスが少し遅いです。これは、非常に高速なローカル(非SQL)ストアで作業しているので重要です。私はカスタムの解析ロジックを使用できるように文字列(または他の形式)として生の入力を取得する方法はありますか?私はこれを文字列パラメータにすることができることを知っていますが、LINQラムダ構文を使用するタイプチェックが本当に好きです。
文字列を解析するのは、式を処理する方が速いはずです。たぶんあなたのコードを投稿する価値があります –
これは確かにX/Yの問題です...あなたは問題がXだと思っていますが、おそらくYです。あなたが望むものを投稿するのはなぜですか? –