実際のアプリケーションでは、単に主キーをクエリするだけでなく、データをフィルタリングすることが頻繁に必要になる場合があります。 LINQ を使用すると、実行時に使用するカスタム ロジックに基づいてデータベースからデータを簡単に取得できます。 したがって、 NCache は LINQ クエリをサポートしており、データベースをクエリするのと同じ方法で分散キャッシュをクエリできます。
LINQ は、データ ソースからデータを検索してフィルターで除外できる汎用 .NET クエリ言語です。 LINQ 構文は SQL に非常に似ていますが、機能的には、クエリを実行するときに、より優れた最適化されたクエリ方法を提供します。 NCache サーバー。 コードのコンパイル中の構文チェックに対応しながら、より効率的なクエリ式を可能にする機能を提供します。
NCache LINQ をシームレスに統合し、LINQ プロバイダーを介してキャッシュ内の情報を照会します。 リンク プロバイダーは、LINQ オブジェクト モデルを変更せずにアプリケーションのパフォーマンスを向上させながら、分散キャッシュを介した LINQ クエリの実行を容易にします。
NCache キャッシュデータを検索するためのLINQ言語の基本的なクエリ式をサポートします。 彼らです:
IQueryable<Product> products = new NCacheQuery<Product>(cache);
IQueryable<Product> product = products.Select(p => p).Where(p => p. UnitsInStock > 10);
IQueryable<Product> products = new NCacheQuery<Product>(cache);
IQueryable<Product> product = from prod in products
where prod.UnitsInStock > 10
select prod;
LINQ演算子は、射影、集計、フィルタリング、並べ替えなどのクエリ機能を提供する拡張メソッドです。 これらのオペレーターの中で、 NCache 以下に記載されているものをサポートします。
IQueryable<Product> product = products.Select(prod => prod);
IQueryable<Product> product = products.Select(prod => prod).Where(prod => prod.UnitsInStock > 10);
NCache 次のようなLINQクエリで基本的なクエリ演算子をサポートします。
参照する LINQクエリ演算子 これらの演算子の使用法について。
NCache は、LINQ で XNUMX つの論理演算子 (AND (&&) および OR (||) 演算子) をサポートします。 これらの演算子は、キャッシュ検索の XNUMX つ以上の制限基準を組み合わせます。 LINQ のガイドに従ってください 論理演算子 それらの使用法を詳細に理解する。
NCache は次の集計演算子をサポートしています。
以下は、集計関数を使用してキャッシュ データを検索し、結果をカウントする方法の例です。
int count = products.Select(p => p).Where(prod => prod.UnitsInStock <= 50).Count();
で集計演算子の使用法を理解する NCache ガイドから LINQ集約演算子.
NCache LINQ式で複数のワイルドカードをサポートします。 これらのワイルドカード演算子は次のとおりです。
以下は、オペレーターがキャッシュ内の特定のデータセットを検索する場合に制限付きでワイルドカードを使用する例です。
IQueryable<Product> product = products.Select(p => p).Where(p => p.ProductName.StartsWith("Be"));
に関するドキュメントを参照してください LINQワイルドカード演算子 詳細をお知りに。
LINQPad は、クエリおよびラムダ式を使用して対話的に SQL データベースにクエリを実行し、IDE を使用せずに C# コードを作成するために使用されるサードパーティ ツールです。 NCache LINQPad ユーティリティとのシームレスな統合をサポートし、データ分析とアプリケーションのパフォーマンスを向上させます。 LINQPad でクエリを処理するには、 NCache LINQプロバイダーは NCacheContext クラス。 .NET frameworkの IQueryable インターフェイス。
IQueryable<Product> product = new NCacheContext<Product>("myPartitionedCache");
IQueryable<Product> products = from prod in product
where prod.UnitsInStock > 50
select prod;
products.Dump();
LINQPad でこのスクリプトを実行すると、UnitsInStock が 50 を超える製品をクエリするための LINQ オブジェクト製品が作成されます。
LINQPadを使用してキャッシュ内のデータをクエリする方法の詳細については、次のドキュメントに従ってください。 LINQPadを使用してキャッシュ内のデータをクエリする、および LINQPad を構成するには NCache 自分で、に提供されている手順に従ってください LINQPadを構成する NCache.