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 genérico de .NET que permite buscar y filtrar datos de una fuente de datos. Su sintaxis es bastante similar a la de SQL, pero proporciona métodos de consulta más optimizados al consultar... 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 LINQ a la perfección para consultar información en la caché mediante un proveedor LINQ. El proveedor de enlaces facilita la ejecución de consultas LINQ en la caché distribuida, a la vez que mejora el rendimiento de la aplicación sin modificar el modelo de objetos LINQ.
A diferencia del LINQ-to-Objects estándar que se ejecuta localmente, NCache LINQ ejecuta consultas en todo el clúster de servidores en paralelo. Esta ejecución distribuida garantiza que el filtrado se realice en la fuente de datos, lo que reduce significativamente el consumo de memoria en la aplicación cliente.
NCache Admite las expresiones de consulta básicas del lenguaje LINQ para buscar datos en caché. Estas 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;
| Elemento | Expresiones Lambda (Fluent) | Expresiones de consulta (declarativas) |
|---|---|---|
| Estilo de sintaxis | Basado en métodos (métodos encadenados) | Palabras clave similares a SQL (desde, dónde, selecciona) |
| Compilación | Compilado directamente en árboles de expresión (para IQueryable) | El compilador lo redujo a llamadas de método Lambda y luego lo convirtió en árboles de expresión. |
| NCache Ejecución | Analizado en NCache SQL vía NCacheConsulta | Analizado en NCache SQL vía NCacheConsulta |
| Mejor caso de uso | Mejor para la creación y canalización de consultas dinámicas | Mejor para uniones complejas o consultas "planas" legibles |
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 interfaz IQueryable del marco .NET.
IQueryable<Product> product = new NCacheContext<Product>("ClusteredCache");
var result = from prod in product
where prod.ProductID == 12
select prod;
result.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.
© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.