Entity Framework Cache-Integration
Entity Framework bietet eine Abstraktion von den zugrunde liegenden relationalen Daten, die in einer Datenbank gespeichert sind, und präsentiert der Anwendung sein konzeptionelles Schema, sodass kein Datenbankpersistenzcode geschrieben werden muss. Dies ist in den meisten Anwendungen mit hohem Transaktionsvolumen zu beobachten, bei denen Skalierbarkeit und Leistung nicht beeinträchtigt werden dürfen. In manchen Fällen stellt die Datenbank jedoch einen Engpass dar, da die Datenbankschicht das Hinzufügen weiterer Server nicht unterstützt. Um also Skalierbarkeit zu erreichen, NCache stellt einen steckbaren In-Memory-Cache-Anbieter bereit, der als Second-Level-Cache fungiert und die Abfrageergebnisse zwischenspeichert.
Die Vorteile der Verwendung NCache als Second Level Cache in Entity Framework-Anwendungen sind:
- Nahtlose Integration: NCache Der Entity Framework Cache-Anbieter kann ohne Codeänderung in die Anwendung integriert werden.
- Bessere Leistung: NCache Der Entity Framework Cache-Anbieter fängt alle Datenbankabfrageaufrufe ab und speichert die Abfrageergebnissätze zwischen. Dies erhöht die Leistung von Anwendungen, indem teure Datenbankfahrten vermieden werden.
- Anwendungsskalierbarkeit: NCache, eine zuverlässige und gemeinsam genutzte Speicherressource für die Speicherung, ermöglicht die gemeinsame Nutzung von Transaktionskontexten zwischen verschiedenen Entitäten in jeder Entity Framework-Anwendung.
Der Caching-Anbieter kann verschiedene Funktionen ausführen, wie zum Beispiel:
- Verwalten von Verbindungen, Befehlen, Transaktionen und Datenlesern.
- Abfragen und Befehle überwachen, bevor sie ausgeführt werden.
Die folgende Abbildung zeigt, wie und wo NCache Der Entity Framework-Anbieter wird in eine Entity Framework-Anwendung eingebunden.
Entity Framework Cache-Integrationsmodi
Es gibt zwei Ausführungsmodi für NCache Entity Framework Caching-Anbieter:
- Analysemodus
- Caching-Modus
Diese Modi schließen sich gegenseitig aus, also NCache Der Entity Framework Caching-Anbieter kann nicht in beiden Modi gleichzeitig ausgeführt werden. Es kann sich entweder im „Caching“-Modus oder im „Analyse“-Modus befinden.
Note
Software Empfehlungen: Führen Sie zunächst die Entity Framework-Anwendung im Analysemodus von aus NCache Entity Framework Caching-Anbieter zur Analyse, welche Abfragen zur Ausführung verwendet werden sollen.
Analysemodus
Der Analysemodus ist ein Pass-Through-Modus, bei dem kein Caching erfolgt, sondern die Anwendung die zu verwendenden Abfragen untersucht. Dieser Modus bietet außerdem die folgenden Funktionen:
Monitorabfragen: Dies hilft zu bestimmen, wie oft eine Abfrage von der Entity Framework-Anwendung ausgeführt wird. Dies hilft dem Benutzer beim Herausfiltern der hochfrequenten Abfragen für das Caching.
Berichte erstellen: Dies gilt für Abfragen mit der richtigen Syntax und deren Anordnung in absteigender Reihenfolge. Ermöglicht dem Benutzer außerdem, relevante Abfragen auszuwählen und sie zum Zwischenspeichern zu kopieren.
<analysis-report>
<query>
<!--Call count = 12-->
<cache-query query-text="SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName], [Extent1].[SupplierID] AS [SupplierID], [Extent1].[CategoryID] AS [CategoryID], [Extent1].[QuantityPerUnit] AS [QuantityPerUnit], [Extent1].[UnitPrice] AS [UnitPrice], [Extent1].[UnitsInStock] AS [UnitsInStock], [Extent1].[UnitsOnOrder] AS [UnitsOnOrder], [Extent1].[ReorderLevel] AS [ReorderLevel], [Extent1].[Discontinued] AS [Discontinued] FROM [dbo].[Products] AS [Extent1] WHERE 5 = [Extent1].[ProductID]"/>
<cache-policy vary-by-cache-param="" expiration-type="Absolute" enabled="True" expiration-time="30sec" dbsyncdependency="False" resyncProviderName="EFResync"/>
</query>
</analysis-report>
Caching-Modus
Dieser Modus ist für die tatsächliche Verwendung von konzipiert NCache in Entity Framework-Anwendungen. Zu diesem Zeitpunkt werden Abfragen und ihre Ergebnismengen zwischengespeichert. Der Caching-Modus unterstützt nur die Abfragen, die in der Konfigurationsdatei angegeben sind, d. h efcaching.ncconf.
NCache Unterstützte Features mit Entity Framework
NCache fungiert als Second-Level-Cache für Entity Framework-Anwendungen und stellt die folgenden Funktionen bereit, die über angegeben werden können Entity Framework Caching-Konfiguration Datei:
Cache-Synchronisation mit Datenbank: In einigen Fällen können einige Daten im Cache ohne Beteiligung der Anwendung in der Datenbank geändert werden. Daher können Sie die entsprechenden Klassen für die angeben Datenbanksynchronisierung Merkmal von NCache. Dies erlaubt NCache um eine Verbindung mit der Datenbank herzustellen, Datenänderungen zu überwachen und den Cache automatisch zu aktualisieren, um sicherzustellen, dass Daten im Cache immer mit der Datenbank synchronisiert sind. NCache stellt SqlDependency für SQL Server, OracleDependency für Oracle und DbDependency für alle OLEDB-kompatiblen Datenbanken bereit.
Absoluter Ablauf: Absoluter Ablauf wird für jedes zwischengespeicherte Element separat angegeben und ist ein
DateTime
Wert, der angibt, wann NCache sollte der Artikel automatisch ablaufen. Für Entity Framework, NCache fordert Sie auf, ein „Intervall“ in Sekunden anzugeben und verwendet dann dasNow + interval
Formel zur Berechnung des Datums-/Uhrzeitwerts für den absoluten Ablauf.Gleitender Ablauf: Gleitender Ablauf wird für jedes zwischengespeicherte Element separat angegeben und ist ein Intervallwert (Sekunden). NCache lässt das zwischengespeicherte Element verfallen, wenn es in diesem Intervall weder abgerufen noch aktualisiert wurde.
Kompakte Serialisierung: NCache ermöglicht Ihnen die Registrierung Ihrer Entity Framework-Klassen für Kompakte Serialisierung und generiert Serialisierungscode, wenn Ihre Anwendung eine Verbindung zum Cache herstellt. NCache kompiliert diesen Code dynamisch im Speicher und verwendet ihn für die Serialisierung, wodurch die Serialisierungsleistung erhöht wird.
In diesem Abschnitt
Die richtigen NCache als Entity Framework (EF) Second Level Cache
Erklärt die Konfiguration und Verwendung NCache als Entity Framework Second-Level-Cache.
Entity Framework (EF) Caching-Konfigurationsdatei
Erklärt die erforderlichen Änderungen in efcaching.ncconf Datei, in der die Entity Framework-Anwendung ausgeführt werden soll NCache.
Entity Framework-Resynchronisierungsanbieter
Erklärt den Resync-Mechanismus von NCache und wie es die Daten im gesamten Cluster auf dem neuesten Stand hält.