実際のアプリケーションでは、単に主キーをクエリするだけでなく、データをフィルタリングすることが頻繁に必要になる場合があります。 LINQ を使用すると、実行時に使用するカスタム ロジックに基づいてデータベースからデータを簡単に取得できます。 したがって、 NCache は LINQ クエリをサポートしており、データベースをクエリするのと同じ方法で分散キャッシュをクエリできます。
LINQは、データソースからデータを検索したりフィルタリングしたりできる汎用的な.NETクエリ言語です。LINQの構文はSQLと非常に似ていますが、データソースに対してクエリを実行する際に、より優れた最適化されたクエリメソッドを提供します。 NCache サーバー。 コードのコンパイル中の構文チェックに対応しながら、より効率的なクエリ式を可能にする機能を提供します。
NCache LINQプロバイダーを介してキャッシュ内の情報をクエリするためのLINQをシームレスに統合します。リンクプロバイダーは、LINQオブジェクトモデルを変更することなく、分散キャッシュに対するLINQクエリの実行を容易にし、アプリケーションのパフォーマンスを向上させます。
ローカルで実行される標準のLINQ-to-Objectsとは異なり、 NCache 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;
| 機能 | ラムダ式(流暢) | クエリ式(宣言型) |
|---|---|---|
| 構文スタイル | メソッドベース(連鎖メソッド) | SQL風のキーワード(from, コラボレー, select) |
| 編集 | 式ツリーに直接コンパイルされます( IQueryable) | コンパイラによってラムダメソッド呼び出しに下げられ、その後式ツリーに変換されます |
| NCache 実行 | 解析すると NCache SQL経由 NCacheクエリー | 解析すると NCache SQL経由 NCacheクエリー |
| 最適な使用例 | 動的クエリ構築/パイプライン化に最適 | 複雑な結合や読みやすい「フラット」なクエリに適しています |
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 フレームワークの IQueryable インターフェイスの実装です。
IQueryable<Product> product = new NCacheContext<Product>("ClusteredCache");
var result = from prod in product
where prod.ProductID == 12
select prod;
result.Dump();
LINQPad でこのスクリプトを実行すると、UnitsInStock が 50 を超える製品をクエリするための LINQ オブジェクト製品が作成されます。
LINQPadを使用してキャッシュ内のデータをクエリする方法の詳細については、次のドキュメントを参照してください。 LINQPadを使用してキャッシュ内のデータをクエリする、および LINQPad を構成するには NCache 自分で、に提供されている手順に従ってください LINQPadを構成する NCache.
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。