Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RAM WEB

[Resolvido] Consulta LINQ

Recommended Posts

Boa noite a todos. Gostaria de contar com a ajuda de vocês para solucionar um problema.

Possuo em meu site uma rotina que conta a quantidade de clicks em um determinado produto. Esses dados ficam salvos em uma tabela de um banco de dados MySQL.

Gostaria de realizar uma consulta a essa tabela usando LINQ e retornar apenas os 3 maiores valores.

A página foi desenvolvida em c# e utilizo o framework Entity Data Source para realizar a conexão com o banco de dados.

Para retornar todos os dados em ordem decrescente tenho o seguinte comando:

 

   public List<produtoclicks> retornarProdutoMaisClicado()
   {
       ram = new entRAM();
       var objram = from p in ram.produtoclicks.Include("produto").ToList()
                    orderby p.qdadeClick descending
                    select p;
       return objram.ToList();
   }

 

Gostaria então da ajuda de vocês para que eu resgate apenas 3 itens dessa tabela ou mesmo que recupere toda a tabela, que eu envie como retorno apenas os 3 últimos.

Caso eu tenha publicado o post em local errado peço desculpa, mas em outro post que encontrei no forum indicavam para que publicasse nessa área.

Muito obrigado a todos que partilharem seu conhecimento comigo. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
public List<produtoclicks> retornarProdutoMaisClicado()
   {
       ram = new entRAM();
       var objram = from p in ram.produtoclicks.Include("produto").ToList()
                    orderby p.qdadeClick descending take(3)
                    select p;
       return objram.ToList();
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Daniel, agradeço desde já sua ajuda.

Utilizei a alteração que você me passou, mas é apresentado o seguinte erro:

 

A query body must end with a select clause or a group clause.

 

Você tem ideia o que pode ter ocasionado esse erro? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal. Passo para agradecer a ajuda de vocês e postar a solução. :clap:

Basta no retorno da função acrescentar o take com o número de registros a ser retornado.

Obrigado a todos e segue o código corrigido. :lol:

 

public List<produtoclicks> retornarProdutoMaisClicado()
   {
       ram = new entRAM();
       var objram = from p in ram.produtoclicks.Include("produto").ToList()
                    orderby p.qdadeClick descending
                    select p;
       return objram.Take(NUMERO DE REGISTROS QUE DESEJA RECUPERAR).ToList();
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.