Verwenden Sie LINQ-Abfragen für Objekte
Um die Vorteile von LINQ nutzen zu können, ist es in integriert NCache Verwendung der NCacheAbfrage Klasse, die die implementiert Abfragbar Schnittstelle, die von der bereitgestellt wird .NET framework. Diese Integration ermöglicht es dem Benutzer, Objekte mithilfe von LINQ-Abfragen abzufragen.
Abgesehen von der Cache-Initialisierung und der zuvor erwähnten Schnittstellenimplementierung sowie den erwarteten neuen Assemblyverweisen und Namespace-Ergänzungen sind für die Verwendung von LINQ-Abfragen keine Codeänderungen erforderlich. Der Rest des Codes funktioniert ohne Änderungen in der Anwendung.
LINQ-Abfragen: Abfragen von Objekten durch NCacheAbfrageklasse
Sie können zum Abrufen einen der folgenden unterstützten LINQ-Operatoren verwenden NCache Objekte mit NCacheAbfrage:
- Projektionsoperatoren
- Einschränkungsoperatoren
- Grundlegende Abfrageoperatoren
- Logische Operatoren
- Aggregationsoperatoren
- Wildcard-Abfrageoperatoren
Der folgende Code demonstriert alle folgenden Operatoren in der Art und Weise, wie sie verwendet werden sollen.
Voraussetzungen für die Verwendung von LINQ-Abfragen
Stellen Sie vor der Verwendung von LINQ-Abfragen sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Die Indizierung für durchsuchbare Objekte und deren Attribute muss zuerst konfiguriert werden, wie in unserem Abschnitt erklärt Dynamische Indizierung machen Konfigurieren von Abfrageindizes und im Administratorhandbuch.
- Einzelheiten zur API finden Sie unter: NCacheAbfrage.
LINQ-Operationen
Der folgende Code verwendet die NCacheAbfrage -Klasse verwendet mehrere der Operatoren, die wir besprochen haben, um die Verwendung zu demonstrieren NCache mit LINQ.
Abfrageausdruck verwenden
// 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-Ausdruck verwenden
// Lambda expression for same query
IQueryable<Product> result = products.Select(prod => prod).Where(prod => ((prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10));
Weitere Informationen
NCache bietet Beispielanwendung für NCache LINQ an GitHub.
Siehe auch
.NETZ: Alachisoft.NCache.Linq Namespace.