Le applicazioni del mondo reale potrebbero spesso dover filtrare i dati anziché semplicemente eseguire una query per la chiave primaria. L'uso di LINQ semplifica il recupero dei dati dal database in base alla logica personalizzata utilizzata in fase di runtime. Perciò, NCache supporta l'esecuzione di query LINQ, che consente di eseguire query sulla cache distribuita nello stesso modo in cui si esegue una query sul database.
LINQ è un linguaggio di query .NET generico che consente di cercare e filtrare i dati dall'origine dati. La sintassi LINQ è abbastanza simile a SQL, ma in termini di funzionalità fornisce metodi di query migliori e più ottimizzati quando si eseguono query sul proprio computer. NCache server. Offre la possibilità di consentire espressioni di query più efficienti provvedendo al contempo al controllo della sintassi durante la compilazione del codice.
NCache integra perfettamente LINQ per interrogare le informazioni all'interno della cache tramite un provider LINQ. Il provider di collegamento facilita l'esecuzione di query LINQ sulla cache distribuita migliorando al contempo le prestazioni dell'applicazione senza modificare il modello a oggetti LINQ.
NCache supporta le espressioni di query di base del linguaggio LINQ per cercare i dati della cache. Sono:
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;
Gli operatori LINQ sono metodi di estensione che offrono funzionalità di query come proiezione, aggregazione, filtraggio e ordinamento. Tra questi operatori, NCache supporta quelli di seguito indicati:
IQueryable<Product> product = products.Select(prod => prod);
IQueryable<Product> product = products.Select(prod => prod).Where(prod => prod.UnitsInStock > 10);
NCache supporta gli operatori di query di base con query LINQ come:
Fare riferimento a Operatori di query LINQ per l'utilizzo di questi operatori.
NCache supporta due operatori logici con LINQ: gli operatori AND (&&) e OR (||). Questi operatori combinano due o più criteri di restrizione per la ricerca nella cache. Segui la nostra guida su LINQ Operatori logici per capire nel dettaglio il loro utilizzo.
NCache supporta i seguenti operatori di aggregazione:
Di seguito è riportato un esempio di come utilizzare le funzioni aggregate per cercare i dati della cache e contare i risultati:
int count = products.Select(p => p).Where(prod => prod.UnitsInStock <= 50).Count();
Comprendere l'utilizzo degli operatori aggregati in NCache dalla nostra guida in poi Operatori aggregati LINQ.
NCache supporta più caratteri jolly nelle espressioni LINQ. Questi operatori jolly sono:
Di seguito è riportato un esempio di utilizzo dei caratteri jolly con una restrizione in cui l'operatore cerca un set di dati specifico nella cache:
IQueryable<Product> product = products.Select(p => p).Where(p => p.ProductName.StartsWith("Be"));
Fare riferimento alla nostra documentazione su Operatori con caratteri jolly LINQ per saperne di più.
LINQPad è uno strumento di terze parti utilizzato per interrogare in modo interattivo i database SQL utilizzando espressioni query e lambda e scrivere codici C# senza alcun IDE. NCache supporta l'integrazione perfetta con l'utilità LINQPad per migliorare l'analisi dei dati e le prestazioni delle applicazioni. Per elaborare le query in LINQPad, NCache Il provider LINQ utilizza il NCacheClasse Context, che è un'implementazione di .NET frameworkl'interfaccia IQueryable di.
IQueryable<Product> product = new NCacheContext<Product>("myPartitionedCache");
IQueryable<Product> products = from prod in product
where prod.UnitsInStock > 50
select prod;
products.Dump();
L'esecuzione di questo script in LINQPad creerà un prodotto oggetto LINQ per eseguire query sui prodotti con UnitsInStock maggiore di 50.
Per saperne di più su come utilizzare LINQPad per interrogare i dati nella cache, segui la nostra documentazione su Interroga i dati nella cache con LINQPade per configurare LINQPad in NCache per te stesso, segui i passaggi forniti in Configura LINQPad per NCache.