Entity Framework est un moteur de mappage objet-relationnel qui fournit une abstraction de la base de données relationnelle sous-jacente et simplifie donc considérablement le développement. En raison de ces avantages, de plus en plus d'applications et de services centrés sur les données et hautement transactionnels sont développés avec Entity Framework.
Mais ces applications à fort trafic sont confrontées à des problèmes d'évolutivité. Bien que le niveau de la couche application soit évolutif, leur base de données ou leur stockage de données ne peut pas suivre le nombre croissant de transactions qui leur sont lancées.
C'est là un cache distribué entre en jeu car il vous permet de mettre en cache les données et de réduire les déplacements coûteux de la base de données qui causent des goulots d'étranglement d'évolutivité. Cependant, Entity Framework ne fournit pas de solution prête à l'emploi qui vous permet d'utiliser le cache distribué dans votre application. Il existe cependant deux manières d'incorporer un cache distribué dans votre application Entity Framework. L'une consiste à modifier le code de votre application Entity Framework et à effectuer des appels d'API directs vers le cache distribué. Deuxièmement, il faut utiliser un cache distribué qui a implémenté un fournisseur ADO.NET personnalisé qui intègre la mise en cache en arrière-plan.
Entity Framework a modèle de fournisseur public pour ADO.NET fournisseurs où vous pouvez écrire des fournisseurs pour 3rd bases de données des partis. NCache a mis en place un fournisseur Entity Framework ADO.NET personnalisé qui lui est propre grâce auquel il est capable d'effectuer des appels de cache distribué vers NCache API. Ce fournisseur Entity Framework ADO.NET personnalisé intercepte tous les appels de requête de base de données et place les jeux de résultats de ces requêtes dans un cache distribué. Puis, NCache Le fournisseur Entity Framework personnalisé intercepte tous les appels de requête ultérieurs et renvoie simplement les résultats à partir de son cache distribué plutôt que de faire ce voyage coûteux dans la base de données. Si le jeu de résultats d'une requête n'existe pas dans le cache distribué, la requête est exécutée sur la base de données et son jeu de résultats est ensuite placé dans le cache distribué.
Et, NCache Le fournisseur Entity Framework personnalisé doit également s'assurer que les données du cache distribué sont toujours cohérentes et synchronisées avec la base de données. Et pour cela NCache Usages SqlCacheDependency fourni dans .NET. SqlCacheDependeny enregistre une requête SQL avec SQL Server, donc si une ligne de l'ensemble de données représenté par cette requête est modifiée dans la base de données, SQL Server envoie une notification d'événement .NET à NCache. NCache intercepte cet événement .NET et supprime le jeu de résultats correspondant du cache distribué.
La figure 1 montre comment NCache Le fournisseur Entity Framework se connecte à une application Entity Framework.
Figure 1 NCache Fournisseur Entity Framework utilisé
Vous pouvez intégrer NCache fournisseur Entity Framework ADO.NET personnalisé dans votre application en seulement quatre étapes simples :
- Remplacez le fournisseur par défaut : Remplacez le fournisseur par défaut de vos applications par NCache Fournisseur de structure d'entité dans app.config/web.config et fichier .edmx.
- Inscription NCache fournisseur: Enregistrez votre candidature dans NCache Configuration d'Entity Framework (efcaching.conf). Dans efcaching.config, vous pouvez facilement spécifier le niveau de journalisation et les politiques d'expiration, etc. pour votre application Entity Framework.
- Exécutez l'application en mode analyse : Exécutez votre application en mode analyse. En mode Analyse, NCache Fournisseur Entity Framework, enregistre les requêtes Entity Framework exécutées par votre application ainsi que leur fréquence. Sur la base des journaux, vous pouvez examiner les requêtes Entity Framework que vous souhaitez mettre en cache.
- Exécutez l'application normalement : Passez en mode cache et lancez votre application.
Ainsi, en utilisant NCache Fournisseur de mise en cache Entity Framework, vous pouvez facilement obtenir une évolutivité linéaire sans modifier le code de votre application Entity Framework.
Alors, téléchargez une version d'essai complète de 60 jours de NCache Enterprise et essayez-le par vous-même.
Oui, il fonctionne avec n'importe quel pilote de connecteur Entity Framework tel que SQL, Oracle, MySQL, PostreSQL, etc. NCache Le fournisseur de mise en cache agit entre le fournisseur de structure d'entité ADO.NET et le fournisseur de données d'origine pour mettre en cache les réponses aux requêtes.
Cela ne fonctionne-t-il qu'avec SQL Server ou n'importe quel pilote de connecteur ENTITY Framework ?