Entity Framework es un motor de mapeo relacional de objetos que proporciona abstracción de la base de datos relacional subyacente y, por lo tanto, simplifica enormemente el desarrollo. Debido a estos beneficios, cada vez más aplicaciones y servicios centrados en datos y altamente transaccionales se desarrollan con Entity Framework.
Sin embargo, estas aplicaciones de alto tráfico se enfrentan a problemas de escalabilidad. Aunque el nivel de la aplicación es escalable, su base de datos o almacenamiento de datos no puede seguir el ritmo del creciente número de transacciones que se les envían.
Aquí es donde un caché distribuida viene porque le permite almacenar datos en caché y reducir esos costosos viajes a la base de datos que están causando cuellos de botella en la escalabilidad. Pero, Entity Framework no proporciona una solución lista para usar que le permita usar el caché distribuido en su aplicación. Sin embargo, hay dos formas en las que puede incorporar caché distribuida en su aplicación Entity Framework. Una es modificar el código de la aplicación de Entity Framework y realizar llamadas API directas a la memoria caché distribuida. En segundo lugar, es usar un caché distribuido que ha implementado un proveedor ADO.NET personalizado que incorpora el almacenamiento en caché detrás de escena.
Entity Framework tiene modelo de proveedor público para ADO.NET los proveedores donde puedes escribir proveedores para 3rd bases de datos de partidos. NCache ha implementado un proveedor personalizado de Entity Framework ADO.NET propia a través de la cual es capaz de realizar llamadas de caché distribuidas a NCache API. Este proveedor personalizado de Entity Framework ADO.NET intercepta todas las llamadas de consulta de la base de datos y coloca los conjuntos de resultados de estas consultas en una memoria caché distribuida. Entonces, NCache El proveedor personalizado de Entity Framework intercepta todas las llamadas de consulta subsiguientes y simplemente devuelve los resultados de su caché distribuida en lugar de realizar ese costoso viaje a la base de datos. Si el conjunto de resultados de una consulta no existe en la memoria caché distribuida, la consulta se ejecuta en la base de datos y su conjunto de resultados se coloca en la memoria caché distribuida.
Y, NCache El proveedor de Entity Framework personalizado también debe asegurarse de que los datos en la memoria caché distribuida sean siempre coherentes y estén sincronizados con la base de datos. Y por eso NCache usos SqlCacheDependency proporcionada en .NET. SqlCacheDependeny registra una consulta SQL con SQL Server, de modo que si alguna fila del conjunto de datos representado por esta consulta cambia en la base de datos, SQL Server envía una notificación de evento .NET a NCache. NCache captura este evento .NET y elimina el conjunto de resultados correspondiente de la memoria caché distribuida.
La figura 1 muestra cómo NCache Entity Framework Provider se conecta a una aplicación de Entity Framework.
Figura 1 y XNUMX NCache Proveedor de Entity Framework que se está utilizando
Puede integrar NCache proveedor personalizado Entity Framework ADO.NET en su aplicación en solo cuatro simples pasos:
- Reemplazar proveedor predeterminado: Reemplace el proveedor predeterminado de sus aplicaciones con NCache Proveedor de Entity Framework en app.config/web.config y archivo .edmx.
- Registro NCache proveedor: Registre su aplicación en NCache Configuración de Entity Framework (efcaching.conf). En efcaching.config, puede especificar fácilmente el nivel de registro y las políticas de caducidad, etc. para su aplicación Entity Framework.
- Ejecute la aplicación en modo de análisis: Ejecute su aplicación en modo de análisis. En el modo de análisis, NCache El proveedor de Entity Framework registra las consultas de Entity Framework ejecutadas por su aplicación junto con su frecuencia. En función de los registros, puede examinar las consultas de Entity Framework que desea almacenar en caché.
- Ejecute la aplicación normalmente: Cambie al modo de almacenamiento en caché y ejecute su aplicación.
Por lo tanto, al usar NCache Como proveedor de almacenamiento en caché de Entity Framework, puede lograr fácilmente una escalabilidad lineal sin cambiar el código de la aplicación de Entity Framework.
Por lo tanto, descargue una versión de prueba de 60 días totalmente funcional de NCache Enterprise y pruébalo por ti mismo.
Sí, funciona con cualquier controlador de conector de Entity Framework, como SQL, Oracle, MySQL, PostreSQL, etc. NCache El proveedor de almacenamiento en caché actúa entre el proveedor del marco de la entidad ADO.NET y el proveedor de datos original para almacenar en caché las respuestas de las consultas.
¿Esto solo funciona con el servidor SQL o cualquier controlador de conector ENTITY Framework?