LINQ-Unterstützung in NCache

In realen Anwendungen kann es häufig erforderlich sein, Daten zu filtern, anstatt einfach nur den Primärschlüssel abzufragen. Mit LINQ können Sie ganz einfach Daten aus Ihrer Datenbank abrufen, basierend auf der benutzerdefinierten Logik, die Sie zur Laufzeit verwenden. Daher, NCache unterstützt LINQ-Abfragen, wodurch Sie Ihren verteilten Cache auf die gleiche Weise abfragen können, wie Sie Ihre Datenbank abfragen.

LINQ ist eine generische .NET-Abfragesprache, mit der Sie Daten aus Ihrer Datenquelle suchen und herausfiltern können. Die LINQ-Syntax ähnelt weitgehend der von SQL, bietet Ihnen jedoch hinsichtlich der Funktionalität bessere und optimiertere Abfragemethoden bei der Abfrage Ihrer Daten NCache Server. Es bietet die Möglichkeit, effizientere Abfrageausdrücke zu ermöglichen und gleichzeitig die Syntaxprüfung während der Codekompilierung zu ermöglichen.

NCache integriert LINQ nahtlos, um Informationen im Cache über einen LINQ-Anbieter abzufragen. Der Linkanbieter vereinfacht die Ausführung von LINQ-Abfragen über den verteilten Cache und verbessert gleichzeitig die Leistung der Anwendung, ohne das LINQ-Objektmodell zu ändern.

 

Unterstützte Abfrageausdrücke

NCache unterstützt die grundlegenden Abfrageausdrücke der LINQ-Sprache zum Durchsuchen von Cache-Daten. Sie sind:

  • Lambda-Ausdrücke: Lambda-Ausdrücke in einer LINQ-Gleichung übersetzen Logik zur Laufzeit, damit sie die Datenquelle bequem weitergeben kann.
  • IQueryable<Product> products = new NCacheQuery<Product>(cache);
    IQueryable<Product> product = products.Select(p => p).Where(p => p. UnitsInStock > 10);
  • Abfrageausdrücke: Abfrageausdrücke fragen Daten von Ihren LINQ-fähigen verteilten Cacheservern ab und wandeln sie um.
  • IQueryable<Product> products = new NCacheQuery<Product>(cache);
    IQueryable<Product> product = from prod in products
                     where prod.UnitsInStock > 10
                     select prod;
 

LINQ-Operatoren

LINQ-Operatoren sind Erweiterungsmethoden, die Abfragefunktionen wie Projektion, Aggregation, Filterung und Sortierung bieten. Unter diesen Betreibern sind NCache unterstützt die unten genannten:

  • Projektionsoperator: projiziert Werte basierend auf einer Transformationsfunktion. Der folgende Codeausschnitt zeigt, wie Sie den Select-Projektionsoperator zum Durchsuchen von Cache-Daten verwenden.
  • IQueryable<Product> product = products.Select(prod => prod);
  • Einschränkungsoperator: schränkt die Ergebnismenge auf ausgewählte Daten ein, die eine bestimmte Bedingung erfüllen. Dieses Code-Snippet durchsucht den Cache nach allen Produkten, deren bestellte Einheiten größer als 10 sind.
  • IQueryable<Product> product = products.Select(prod => prod).Where(prod => prod.UnitsInStock > 10);
 

Abfrageoperatoren

NCache unterstützt grundlegende Abfrageoperatoren mit LINQ-Abfragen wie:

  • Gleich (==)
  • Ungleich (!=)
  • Kleiner als (<)
  • Größer als (>)
  • Kleiner als gleich (<=)
  • Größer als gleich (>=)

Beziehen auf LINQ-Abfrageoperatoren für die Verwendung dieser Operatoren.

 

Logische Operatoren

NCache unterstützt zwei logische Operatoren mit LINQ – die Operatoren AND (&&) und OR (||). Diese Operatoren kombinieren zwei oder mehr Einschränkungskriterien für die Cache-Suche. Folgen Sie unserem Leitfaden zu LINQ Logische Operatoren ihre Verwendung im Detail zu verstehen.

 

Aggregationsoperatoren

NCache unterstützt die folgenden Aggregationsoperatoren:

  • Zu Zählen
  • Max
  • Min.
  • Durchschnittlich
  • Sum

Im Folgenden finden Sie ein Beispiel für die Verwendung von Aggregatfunktionen zum Suchen nach Cache-Daten und zum Zählen der Ergebnisse:

int count = products.Select(p => p).Where(prod => prod.UnitsInStock <= 50).Count();

Verstehen Sie die Verwendung von Aggregatoperatoren in NCache ab unserem Ratgeber LINQ-Aggregatoperatoren.

 

Wildcard-Operatoren

NCache unterstützt mehrere Platzhalter in LINQ-Ausdrücken. Diese Platzhalteroperatoren sind:

  • Beginnt mit
  • Endet mit
  • Enthält
  • Equals

Das Folgende ist ein Beispiel für die Verwendung von Platzhaltern mit einer Einschränkung, bei der der Operator nach einem bestimmten Datensatz im Cache sucht:

IQueryable<Product> product = products.Select(p => p).Where(p => p.ProductName.StartsWith("Be"));

Weitere Informationen finden Sie in unserer Dokumentation zu LINQ-Platzhalteroperatoren mehr wissen.

 

LINQPad-Unterstützung

LINQPad ist ein Tool eines Drittanbieters, mit dem SQL-Datenbanken mithilfe von Abfrage- und Lambda-Ausdrücken interaktiv abgefragt und C#-Codes ohne IDE geschrieben werden können. NCache unterstützt die nahtlose Integration mit dem LINQPad-Dienstprogramm, um die Datenanalyse und Anwendungsleistung zu verbessern. Um Abfragen in LINQPad zu verarbeiten, NCache LINQ-Anbieter verwendet die NCacheKontextklasse, die eine Implementierung von ist .NET frameworkist die IQueryable-Schnittstelle.

IQueryable<Product> product = new NCacheContext<Product>("myPartitionedCache");
IQueryable<Product> products = from prod in product
             where prod.UnitsInStock > 50
             select prod;
products.Dump();

Wenn Sie dieses Skript im LINQPad ausführen, wird ein LINQ-Objektprodukt erstellt, um die Produkte abzufragen, deren UnitsInStock größer als 50 ist.

LINQPad

Weitere Informationen zur Verwendung von LINQPad zum Abfragen von Daten im Cache finden Sie in unserer Dokumentation unter Daten im Cache mit LINQPad abfragenund zum Konfigurieren von LINQPad in NCache Befolgen Sie für sich selbst die Schritte in Konfigurieren Sie LINQPad für NCache.

Was macht man als nächstes?

Bewertung NCache Eigenschaften
Herunterladen NCache
Fordern Sie eine personalisierte LIVE-Demo an
© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.