LINQサポート NCache

実際のアプリケーションでは、単に主キーをクエリするだけでなく、データをフィルタリングすることが頻繁に必要になる場合があります。 LINQ を使用すると、実行時に使用するカスタム ロジックに基づいてデータベースからデータを簡単に取得できます。 したがって、 NCache は LINQ クエリをサポートしており、データベースをクエリするのと同じ方法で分散キャッシュをクエリできます。

LINQは、データソースからデータを検索したりフィルタリングしたりできる汎用的な.NETクエリ言語です。LINQの構文はSQLと非常に似ていますが、データソースに対してクエリを実行する際に、より優れた最適化されたクエリメソッドを提供します。 NCache サーバー。 コードのコンパイル中の構文チェックに対応しながら、より効率的なクエリ式を可能にする機能を提供します。

NCache LINQプロバイダーを介してキャッシュ内の情報をクエリするためのLINQをシームレスに統合します。リンクプロバイダーは、LINQオブジェクトモデルを変更することなく、分散キャッシュに対するLINQクエリの実行を容易にし、アプリケーションのパフォーマンスを向上させます。

ローカルで実行される標準のLINQ-to-Objectsとは異なり、 NCache LINQは、サーバークラスター全体にわたってクエリを並列実行します。この分散実行により、フィルタリングはデータソースで実行されるため、クライアントアプリケーションのメモリ使用量が大幅に削減されます。

 

LINQクエリ式は NCache サポート?

NCache キャッシュデータを検索するためのLINQ言語の基本的なクエリ式をサポートしています。以下のとおりです。

  • ラムダ式: LINQ 式のラムダ式は実行時にロジックを変換するため、データ ソースを簡単に渡すことができます。
  • IQueryable<Product> products = new NCacheQuery<Product>(cache);
    IQueryable<Product> product = products.Select(p => p).Where(p => p. UnitsInStock > 10);
  • クエリ式: クエリ式は、LINQ 対応の分散キャッシュ サーバーからデータをクエリして変換します。
  • 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オペレーター

LINQ演算子は、射影、集計、フィルタリング、並べ替えなどのクエリ機能を提供する拡張メソッドです。 これらのオペレーターの中で、 NCache 以下に記載されているものをサポートします。

  • 投影演算子: 変換関数に基づいて値を投影します。 次のコード スニペットは、選択投影演算子を使用してキャッシュ データを検索する方法を示しています。
  • IQueryable<Product> product = products.Select(prod => prod);
  • 制限演算子: 結果セットを、特定の条件を満たす選択されたデータに制限します。 このコードスニペットは、注文されたユニットが10より大きいすべての製品をキャッシュで検索します。
  • 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の使い方 NCache?

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 5 実行中 NCache分散キャッシュから ProductID 12 を取得するためのコンテキスト LINQ クエリ。
クエリ NCache LINQPad を使用した ClusteredCache。

LINQPadを使用してキャッシュ内のデータをクエリする方法の詳細については、次のドキュメントを参照してください。 LINQPadを使用してキャッシュ内のデータをクエリする、および LINQPad を構成するには NCache 自分で、に提供されている手順に従ってください LINQPadを構成する NCache.

次はどうする?

よくある質問(FAQ)

NCache LINQ サポートを使用すると、標準の C# 構文を使用して分散キャッシュ データをクエリし、サーバー クラスター全体でフィルターを並列実行して、クライアント側のメモリ フットプリントとデータベースの負荷を削減できます。

はい、 NCache ラムダ式(流暢な構文)をサポート NCacheクエリー クラスは、実行時のロジック変換を可能にし、効率的なキャッシュ検索を実現します。

NCache LINQPadとのシームレスな統合を提供します NCacheコンテキスト クラスにより、開発者は完全な IDE を使用せずに C# ステートメントを使用してクラスター化されたキャッシュを対話的にクエリできるようになります。

NCache 標準のLINQ集計演算子をサポートしており、 数量カウント, 最大値, 最小値, 平均, 合計 キャッシュされたデータセットに対してサーバー側の計算を実行します。

NCache LINQ式で複数のワイルドカード演算子をサポートし、具体的には で始まる, 次で終わる, 含まれています, 等しいです 柔軟な文字列ベースのフィルタリングを実現します。

お問い合わせ

電話

+1 214-619-2601 (米国)

+44 20 7993 8327 (英国)

©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。