Utilizzare query LINQ per oggetti
Per utilizzare i vantaggi di LINQ, è integrato con NCache usando il NCachedomanda classe, che implementa il Interrogabile interfaccia fornita dal .NET framework. Questa integrazione consente all'utente di eseguire query sugli oggetti utilizzando query LINQ.
Non è richiesta alcuna modifica al codice per l'utilizzo delle query LINQ, a parte l'inizializzazione della cache e l'implementazione dell'interfaccia menzionata in precedenza insieme al nuovo riferimento all'assembly e alle aggiunte dello spazio dei nomi previsti. Il resto del codice funzionerà senza alcuna modifica nell'applicazione.
Query LINQ: interrogazione di oggetti tramite NCacheClasse di interrogazione
È possibile utilizzare uno qualsiasi dei seguenti operatori LINQ supportati per il recupero NCache oggetti usando NCachedomanda:
- Operatori di proiezione
- Operatori di restrizione
- Operatori di query di base
- Operatori logici
- Operatori di aggregazione
- Operatori di query con caratteri jolly
Il codice seguente illustra tutti i seguenti operatori nel modo in cui devono essere utilizzati.
Prerequisiti per utilizzare le query LINQ
Prima di utilizzare le query LINQ assicurarsi che siano soddisfatti i seguenti prerequisiti:
- Per conoscere i prerequisiti standard richiesti per lavorare con all NCache Per le funzionalità lato client fare riferimento alla pagina specificata Prerequisiti dell'API lato client.
- L'indicizzazione per gli oggetti ricercabili e i loro attributi devono essere configurati prima come spiegato nella nostra sezione su Indicizzazione dinamica ed Configurazione degli indici di query e nella Guida dell'amministratore.
- Per i dettagli dell'API, fare riferimento a: NCachedomanda.
Operazioni LINQ
Il codice seguente utilizza il NCachedomanda class utilizza molti degli operatori che abbiamo discusso per dimostrare come utilizzare NCache con LINQ.
Utilizzo dell'espressione di query
// 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");
}
Utilizzo dell'espressione lambda
// Lambda expression for same query
IQueryable<Product> result = products.Select(prod => prod).Where(prod => ((prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10));
Risorse addizionali
NCache fornisce un'applicazione di esempio per NCache LINQ attivo GitHub.
Vedere anche
.NETTO: Alachisoft.NCache.Linq spazio dei nomi.