Os aplicativos do mundo real podem frequentemente precisar filtrar dados em vez de simplesmente consultar a chave primária. O uso do LINQ facilita a recuperação de dados do seu banco de dados com base em qualquer lógica personalizada que você emprega em tempo de execução. Portanto, NCache oferece suporte à consulta LINQ, que permite consultar seu cache distribuído da mesma maneira que você consulta seu banco de dados.
LINQ é uma linguagem de consulta .NET genérica que permite pesquisar e filtrar dados de sua fonte de dados. A sintaxe do LINQ é bastante semelhante ao SQL, mas em funcionalidades fornece métodos de consulta melhores e mais otimizados ao consultar seu NCache servidores. Ele oferece a capacidade de permitir expressões de consulta mais eficientes, ao mesmo tempo que atende à verificação de sintaxe durante a compilação do código.
NCache integra perfeitamente o LINQ para consultar informações no cache por meio de um provedor LINQ. O provedor de link facilita a execução de consultas LINQ no cache distribuído enquanto melhora o desempenho do aplicativo sem alterar o modelo de objeto LINQ.
NCache dá suporte às expressões de consulta básicas da linguagem LINQ para pesquisar dados de cache. Eles estão:
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;
Os operadores LINQ são métodos de extensão que oferecem recursos de consulta como projeção, agregação, filtragem e classificação. Entre esses operadores, NCache suporta os mencionados abaixo:
IQueryable<Product> product = products.Select(prod => prod);
IQueryable<Product> product = products.Select(prod => prod).Where(prod => prod.UnitsInStock > 10);
NCache suporta operadores de consulta básicos com consultas LINQ como:
Consulte Operadores de consulta LINQ para o uso desses operadores.
NCache suporta dois operadores lógicos com LINQ - os operadores AND (&&) e OR (||). Estes operadores combinam dois ou mais critérios de restrição para a pesquisa de cache. Siga nosso guia sobre LINQ Operadores lógicos para entender seu uso em detalhes.
NCache suporta os seguintes operadores de agregação:
A seguir está um exemplo de como usar funções agregadas para pesquisar dados de cache e contar os resultados:
int count = products.Select(p => p).Where(prod => prod.UnitsInStock <= 50).Count();
Entenda o uso de operadores agregados em NCache do nosso guia em Operadores agregados LINQ.
NCache dá suporte a vários curingas em expressões LINQ. Esses operadores curinga são:
A seguir está um exemplo de uso de curingas com restrição onde o operador procura um conjunto de dados específico no cache:
IQueryable<Product> product = products.Select(p => p).Where(p => p.ProductName.StartsWith("Be"));
Consulte nossa documentação em Operadores curinga LINQ para saber mais.
LINQPad é uma ferramenta de terceiros usada para consultar bancos de dados SQL interativamente usando expressões de consulta e lambda e escrever códigos C# sem qualquer IDE. NCache oferece suporte à integração perfeita com o utilitário LINQPad para melhorar a análise de dados e o desempenho do aplicativo. Para processar consultas no LINQPad, NCache O provedor LINQ usa o NCacheClasse de contexto, que é uma implementação do .NET frameworkinterface IQueryable do.
IQueryable<Product> product = new NCacheContext<Product>("myPartitionedCache");
IQueryable<Product> products = from prod in product
where prod.UnitsInStock > 50
select prod;
products.Dump();
A execução deste script no LINQPad criará um objeto LINQ produto para consultar os produtos com UnitsInStock maior que 50.
Para saber mais sobre como usar o LINQPad para consultar dados em cache, siga nossa documentação em Consultar dados em cache com LINQPade para configurar o LINQPad em NCache para si mesmo, siga as etapas fornecidas em Configurar o LINQPad para NCache.