Compatibilidad con LINQ en NCache

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.

 

¿Qué expresiones de consulta LINQ hace? NCache ¿apoyo?

NCache Admite las expresiones de consulta básicas del lenguaje LINQ para buscar datos en caché. Estas son:

  • Expresiones Lambda: Las expresiones lambda en una ecuación LINQ traducen la lógica en tiempo de ejecución, por lo que pueden pasar la fuente de datos cómodamente.
  • IQueryable<Product> products = new NCacheQuery<Product>(cache);
    IQueryable<Product> product = products.Select(p => p).Where(p => p. UnitsInStock > 10);
  • Expresiones de consulta: Las expresiones de consulta consultan y transforman datos de sus servidores de caché distribuida habilitados para LINQ.
  • 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
 

Operadores LINQ

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:

  • Operador de proyección: proyecta valores basados ​​en una función de transformación. El siguiente fragmento de código muestra cómo utilizar el operador de proyección de selección para buscar datos en caché.
  • IQueryable<Product> product = products.Select(prod => prod);
  • Operador de restricción: restringe el conjunto de resultados a los datos seleccionados que satisfacen una condición particular. Este fragmento de código busca en la memoria caché todos los productos cuyas unidades en pedido sean superiores a 10.
  • IQueryable<Product> product = products.Select(prod => prod).Where(prod => prod.UnitsInStock > 10);
 

Operadores de consulta

NCache admite operadores de consulta básicos con consultas LINQ como:

  • Igual (==)
  • No es igual a (!=)
  • Menos que (<)
  • mayor que (>)
  • Menor que igual a (<=)
  • Mayor que igual a (>=)

Consulte Operadores de consulta LINQ para el uso de estos operadores.

 

Operadores logicos

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.

 

Operadores de agregación

NCache admite los siguientes operadores de agregación:

  • Contar
  • Max
  • Min
  • Normal
  • Suma

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.

 

Operadores comodín

NCache admite varios comodines en expresiones LINQ. Estos operadores comodín son:

  • Comienza con
  • Termina con
  • Contiene
  • Equivale

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.

 

¿Cómo uso LINQPad con? NCache?

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.

LINQPad 5 ejecutándose NCacheConsulta LINQ de contexto para recuperar ProductID 12 de una caché distribuida.
Consulta NCache ClusteredCache con LINQPad.

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.

¿Qué hacer a continuación?

Preguntas frecuentes

NCache La compatibilidad con LINQ le permite consultar datos de caché distribuidos utilizando la sintaxis C# estándar, ejecutando filtros en paralelo en todo el clúster de servidores para reducir la huella de memoria del lado del cliente y la carga de la base de datos.

Sí, NCache Admite expresiones Lambda (sintaxis fluida) a través de NCacheConsulta clase que permite la traducción de la lógica en tiempo de ejecución para una búsqueda eficiente en caché.

NCache Proporciona una integración perfecta con LINQPad a través de NCacheContexto clase que permite a los desarrolladores consultar de forma interactiva cachés agrupadas mediante sentencias C# sin un IDE completo.

NCache Admite operadores de agregación LINQ estándar, incluidos Contar, Max, Min, Normal, y Suma para realizar cálculos del lado del servidor en conjuntos de datos almacenados en caché.

NCache admite múltiples operadores comodín en expresiones LINQ, específicamente Comienza con, Termina con, Contiene, y Equivale para un filtrado flexible basado en cadenas.

Contáctenos

TELÉFONO

+1 214-619-2601 (EE.UU.)

+44 20 7993 8327 (Reino Unido)

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.