Utilice consultas LINQ para objetos
Para utilizar los beneficios de LINQ, se integra con NCache usando el NCacheConsulta clase, que implementa la IQueryable interfaz proporcionada por el .NET framework. Esta integración permite al usuario consultar objetos mediante consultas LINQ.
No se requiere ningún cambio de código para usar consultas LINQ aparte de la inicialización de la caché y la implementación de la interfaz mencionada anteriormente junto con las nuevas referencias de ensamblaje esperadas y las adiciones de espacios de nombres. El resto del código funcionará sin ningún cambio en la aplicación.
Consultas LINQ: consulta de objetos a través de NCacheClase de consulta
Puede utilizar cualquiera de los siguientes operadores LINQ admitidos para recuperar NCache objetos usando NCacheConsulta:
- Operadores de proyección
- Operadores de restricción
- Operadores básicos de consulta
- Operadores logicos
- Operadores de agregación
- Operadores de consulta comodín
El siguiente código demuestra todos los siguientes operadores en la forma en que deben usarse.
Requisitos previos para utilizar consultas LINQ
Antes de utilizar consultas LINQ, asegúrese de que se cumplan los siguientes requisitos previos:
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache características del lado del cliente, consulte la página proporcionada en Requisitos previos de la API del lado del cliente.
- La indexación de objetos que se pueden buscar y sus atributos deben configurarse primero como se explica en nuestra sección sobre Indexación dinámica y Configuración de índices de consulta y en la Guía del administrador.
- Para obtener detalles de la API, consulte: NCacheConsulta.
Operaciones LINQ
El siguiente código usa el NCacheConsulta class usa varios de los operadores que hemos discutido para demostrar cómo usar NCache con LINQ.
Uso de la expresión de consulta
// Precondition: Cache is already connected
// Create custom class LINQ object
IQueryable<Product> products = new NCacheQuery<Product>(cache);
// LINQ query to search cache
IQueryable<Product> result = from prod in products where (prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10 select prod;
if (result != null)
{
foreach (Product product in result)
{
Console.WriteLine($"Product '{product.ProductName}' in Category '{product.Category}' has stock of '{product.UnitsInStock}' units");
}
}
else
{
Console.WriteLine($"No product found");
}
Uso de la expresión Lambda
// Lambda expression for same query
IQueryable<Product> result = products.Select(prod => prod).Where(prod => ((prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10));
Recursos adicionales
NCache proporciona una aplicación de muestra para NCache LINQ en GitHub.
Vea también
.NETO: Alachisoft.NCache.linq espacio de nombres