Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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. :)
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? :(
a cláusula que faz isso é a clausula Take acho que deve ser a forma de usá-la
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();
}