Les applications du monde réel peuvent fréquemment avoir besoin de filtrer les données plutôt que de simplement demander la clé primaire. L'utilisation de LINQ facilite la récupération des données de votre base de données en fonction de la logique personnalisée que vous utilisez au moment de l'exécution. Donc, NCache prend en charge les requêtes LINQ, qui vous permettent d'interroger votre cache distribué de la même manière que vous interrogez votre base de données.
LINQ est un langage de requête .NET générique qui vous permet de rechercher et de filtrer les données de votre source de données. La syntaxe LINQ est assez similaire à SQL, mais en termes de fonctionnalités, elle vous offre des méthodes d'interrogation meilleures et plus optimisées lors de l'interrogation de votre NCache les serveurs. Il offre la possibilité d'autoriser des expressions de requête plus efficaces tout en assurant la vérification de la syntaxe lors de la compilation du code.
NCache intègre de manière transparente LINQ pour interroger des informations dans le cache via un fournisseur LINQ. Le fournisseur de liens facilite l'exécution des requêtes LINQ sur le cache distribué tout en améliorant les performances de l'application sans modifier le modèle d'objet LINQ.
NCache prend en charge les expressions de requête de base du langage LINQ pour rechercher les données du cache. Ils sont:
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;
Les opérateurs LINQ sont des méthodes d'extension qui offrent des fonctionnalités de requête telles que la projection, l'agrégation, le filtrage et le tri. Parmi ces opérateurs, NCache prend en charge ceux mentionnés ci-dessous:
IQueryable<Product> product = products.Select(prod => prod);
IQueryable<Product> product = products.Select(prod => prod).Where(prod => prod.UnitsInStock > 10);
NCache prend en charge les opérateurs de requête de base avec les requêtes LINQ comme :
Reportez-vous à Opérateurs de requête LINQ pour l'utilisation de ces opérateurs.
NCache prend en charge deux opérateurs logiques avec LINQ : les opérateurs AND (&&) et OR (||). Ces opérateurs combinent deux ou plusieurs critères de restriction pour la recherche dans le cache. Suivez notre guide sur LINQ opérateurs logiques pour comprendre leur utilisation en détail.
NCache prend en charge les opérateurs d'agrégation suivants :
Voici un exemple d'utilisation des fonctions d'agrégation pour rechercher des données de cache et compter les résultats :
int count = products.Select(p => p).Where(prod => prod.UnitsInStock <= 50).Count();
Comprendre l'utilisation des opérateurs d'agrégation dans NCache de notre guide sur Opérateurs d'agrégation LINQ.
NCache prend en charge plusieurs caractères génériques dans les expressions LINQ. Ces opérateurs génériques sont :
Voici un exemple d'utilisation de caractères génériques avec une restriction où l'opérateur recherche un ensemble de données spécifique dans le cache :
IQueryable<Product> product = products.Select(p => p).Where(p => p.ProductName.StartsWith("Be"));
Consultez notre documentation sur Opérateurs génériques LINQ en savoir plus.
LINQPad est un outil tiers utilisé pour interroger de manière interactive des bases de données SQL à l'aide d'expressions de requête et lambda et écrire des codes C# sans aucun IDE. NCache prend en charge une intégration transparente avec l'utilitaire LINQPad pour améliorer l'analyse des données et les performances des applications. Pour traiter les requêtes dans LINQPad, NCache Le fournisseur LINQ utilise le NCacheClasse de contexte, qui est une implémentation de .NET frameworkL'interface IQueryable de .
IQueryable<Product> product = new NCacheContext<Product>("myPartitionedCache");
IQueryable<Product> products = from prod in product
where prod.UnitsInStock > 50
select prod;
products.Dump();
L'exécution de ce script dans LINQPad créera un produit objet LINQ pour interroger les produits avec UnitsInStock supérieur à 50.
Pour en savoir plus sur l'utilisation de LINQPad pour interroger les données en cache, suivez notre documentation sur Interroger des données dans le cache avec LINQPad, et pour configurer LINQPad dans NCache pour vous-même, suivez les étapes indiquées dans Configurer LINQPad pour NCache.