none
Como sortear um registro usando expressão Lambda ou Linq ? RRS feed

  • Pergunta

  • Olá Pessoal, boa noite.

    Sou novo por aqui e em Asp.net MVC. Hoje me deparei com um problema. Como pegar epenas um registro sorteado rondômicamente em uma tabela usando expressão Lambda ou Linq?

    Se fosse em SQL seria algo assim:

    "SELECT * FROM cliente ORDER BY RAND() LIMIT 1 "

    Como seria com expressão Lambda?

    Como não sei sortear estou resgatando apenas o primeiro registro dessa maneira:

    var cliente = db.Cliente.First();

    Se alguém puder me ajudar ficarei imensamente grato.

    Desde já agradeço.

    Att,

    quarta-feira, 4 de setembro de 2013 23:35

Respostas

  • Seria mais ou menos assim

    Tenho uma Entidade Lancamentos então:

    Random rnd = new Random();
    int Quantidade = dal.Lancamentos.Count() - 1;
    Lancamentos lanc1 = dal.Lancamentos.AsEnumerable().OrderBy(x => rnd.Next(Quantidade)).FirstOrDefault();
    Lancamentos lanc2 = dal.Lancamentos.AsEnumerable().OrderBy(x => rnd.Next(Quantidade)).FirstOrDefault();
    Lancamentos lanc3 = dal.Lancamentos.AsEnumerable().OrderBy(x => rnd.Next(Quantidade)).FirstOrDefault();

    Os três lançamentos são diferentes!!!


    Fúlvio Cezar Canducci Dias

    • Marcado como Resposta Jones Santos quinta-feira, 5 de setembro de 2013 02:04
    quinta-feira, 5 de setembro de 2013 00:15

Todas as Respostas

  • Seria mais ou menos assim

    Tenho uma Entidade Lancamentos então:

    Random rnd = new Random();
    int Quantidade = dal.Lancamentos.Count() - 1;
    Lancamentos lanc1 = dal.Lancamentos.AsEnumerable().OrderBy(x => rnd.Next(Quantidade)).FirstOrDefault();
    Lancamentos lanc2 = dal.Lancamentos.AsEnumerable().OrderBy(x => rnd.Next(Quantidade)).FirstOrDefault();
    Lancamentos lanc3 = dal.Lancamentos.AsEnumerable().OrderBy(x => rnd.Next(Quantidade)).FirstOrDefault();

    Os três lançamentos são diferentes!!!


    Fúlvio Cezar Canducci Dias

    • Marcado como Resposta Jones Santos quinta-feira, 5 de setembro de 2013 02:04
    quinta-feira, 5 de setembro de 2013 00:15
  • Valew mano! Era o que eu precisava!

    Muito obrigado!!!

    abraço.

    quinta-feira, 5 de setembro de 2013 02:05