Es posible que las aplicaciones del mundo real frecuentemente necesiten filtrar datos en lugar de simplemente consultar la clave principal. El uso de LINQ facilita la recuperación de datos de su base de datos en función de cualquier lógica personalizada que emplee en tiempo de ejecución. Por lo tanto, NCache admite consultas LINQ, que le permiten consultar su caché distribuida de la misma manera que consulta su base de datos.
LINQ es un lenguaje de consulta .NET genérico que le permite buscar y filtrar datos de su fuente de datos. La sintaxis de LINQ es bastante similar a SQL, pero en cuanto a funcionalidades, le proporciona métodos de consulta mejores y más optimizados al consultar su NCache servidores. Ofrece la capacidad de permitir expresiones de consulta más eficientes y al mismo tiempo atender la verificación de sintaxis durante la compilación del código.
NCache integra a la perfección LINQ para consultar información dentro de la memoria caché a través de un proveedor de LINQ. El proveedor de enlaces facilita la ejecución de consultas LINQ sobre la memoria caché distribuida mientras mejora el rendimiento de la aplicación sin cambiar el modelo de objetos LINQ.
NCache admite las expresiones de consulta básicas del lenguaje LINQ para buscar datos de caché. Ellos son:
IQueryable<Product> products = new NCacheQuery<Product>(cache);
IQueryable<Product> product = products.Select(p => p).Where(p => p. UnitsInStock > 10);
IQueryable<Product> products = new NCacheQuery<Product>(cache);
IQueryable<Product> product = from prod in products
where prod.UnitsInStock > 10
select prod;
Los operadores LINQ son métodos de extensión que ofrecen capacidades de consulta como proyección, agregación, filtrado y clasificación. Entre estos operadores, NCache admite los que se mencionan a continuación:
IQueryable<Product> product = products.Select(prod => prod);
IQueryable<Product> product = products.Select(prod => prod).Where(prod => prod.UnitsInStock > 10);
NCache admite operadores de consulta básicos con consultas LINQ como:
Consulte Operadores de consulta LINQ para el uso de estos operadores.
NCache admite dos operadores lógicos con LINQ: los operadores AND (&&) y OR (||). Estos operadores combinan dos o más criterios de restricción para la búsqueda de caché. Siga nuestra guía en LINQ Operadores logicos para entender su uso en detalle.
NCache admite los siguientes operadores de agregación:
El siguiente es un ejemplo de cómo utilizar funciones agregadas para buscar datos de caché y contar los resultados:
int count = products.Select(p => p).Where(prod => prod.UnitsInStock <= 50).Count();
Comprender el uso de operadores agregados en NCache de nuestra guía sobre Operadores agregados de LINQ.
NCache admite varios comodines en expresiones LINQ. Estos operadores comodín son:
El siguiente es un ejemplo del uso de comodines con una restricción donde el operador busca un conjunto de datos específico en la caché:
IQueryable<Product> product = products.Select(p => p).Where(p => p.ProductName.StartsWith("Be"));
Consulte nuestra documentación sobre Operadores comodín de LINQ para saber mas.
LINQPad es una herramienta de terceros que se utiliza para consultar interactivamente bases de datos SQL mediante consultas y expresiones lambda y escribir códigos C# sin ningún IDE. NCache admite una integración perfecta con la utilidad LINQPad para mejorar el análisis de datos y el rendimiento de las aplicaciones. Para procesar consultas en LINQPad, NCache El proveedor de LINQ utiliza el NCacheClase de contexto, que es una implementación de la .NET frameworkLa interfaz IQueryable.
IQueryable<Product> product = new NCacheContext<Product>("myPartitionedCache");
IQueryable<Product> products = from prod in product
where prod.UnitsInStock > 50
select prod;
products.Dump();
La ejecución de este script en LINQPad creará un producto de objeto LINQ para consultar los productos con UnitsInStock mayores que 50.
Para saber más sobre cómo usar LINQPad para consultar datos en caché, siga nuestra documentación en Consultar datos en caché con LINQPady configurar LINQPad en NCache usted mismo, siga los pasos proporcionados en Configurar LINQPad para NCache.