オブジェクトに対して LINQ クエリを使用する
LINQ の利点を活用するために、LINQ と統合されています。 NCache NCacheクエリー クラス、を実装します IQueryable によって提供されるインターフェイス .NET framework。この統合により、ユーザーは LINQ クエリを使用してオブジェクトをクエリできるようになります。
LINQ クエリを使用する場合、キャッシュの初期化と前述のインターフェイスの実装、および予想される新しいアセンブリ参照と名前空間の追加以外にコードを変更する必要はありません。コードの残りの部分は、アプリケーションを変更しなくても機能します。
LINQ クエリ: オブジェクトのクエリ NCacheクエリクラス
次のサポートされているLINQ演算子のいずれかを使用して取得できます NCache を使用するオブジェクト NCacheクエリー:
以下のコードは、以下のすべての演算子を意図された方法で使用する方法を示しています。
LINQ クエリを使用するための前提条件
LINQ クエリを使用する前に、次の前提条件が満たされていることを確認してください。
- すべてを使用するために必要な標準的な前提条件について学習するには NCache クライアント側の機能については、次のページを参照してください。 クライアント側 API の前提条件.
- のセクションで説明したように、検索可能なオブジェクトとその属性のインデックス作成を最初に構成する必要があります。 動的索引付け および クエリインデックスの構成 および管理者ガイドに記載されています。
- APIの詳細については、以下を参照してください。 NCacheクエリー.
LINQ 操作
次のコードは NCacheクエリー クラスは、使用方法を示すために説明したいくつかの演算子を使用します NCache LINQを使用します。
クエリ式の使用
// Precondition: Cache is already connected
// Create custom class LINQ object
IQueryable<Product> products = new NCacheQuery<Product>(cache);
// LINQ query to search cache
IQueryable<Product> result = from prod in products where (prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10 select prod;
if (result != null)
{
foreach (Product product in result)
{
Console.WriteLine($"Product '{product.ProductName}' in Category '{product.Category}' has stock of '{product.UnitsInStock}' units");
}
}
else
{
Console.WriteLine($"No product found");
}
ラムダ式の使用
// Lambda expression for same query
IQueryable<Product> result = products.Select(prod => prod).Where(prod => ((prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10));
その他のリソース
NCache のサンプル アプリケーションを提供します NCache LINQ オン GitHubの.
も参照してください
。ネット: Alachisoft.NCache.Linq 名前空間