AJUDA COM EXPRESSÃO LAMBDA

PERCIFILHO 06/05/2016 09:55:03
#461863
Bom dia, pessoal.
Tenho uma query onde preciso que me retorne somente os meses e os anos dos registros sem repetir.

SELECT DatePart(Month, DataVencimento), DatePart(Year, DataVencimento)
FROM Lancamento
Group By DatePart(Month, DataVencimento), DatePart(Year, DataVencimento)
Order By DatePart(Year, DataVencimento), DatePart(Month, DataVencimento)


Precisaria fazer essa mesma query só que com expressão Lambda, alguém poderia me ajudar?
PERCIFILHO 06/05/2016 10:21:34
#461864
Encontrei uma LINQ que faz exatamente isso que eu preciso:

var query = _lancamentos.GroupBy(x => new { x.DataVencimento.Month, x.DataVencimento.Year })
.Select(y => new { mes = y.Key.Month, ano = y.Key.Year })
.OrderBy(x => x.mes).OrderBy(x => x.ano).ToList();

é correto usar LINQ com Lambda? é uma boa prática? Qual é a melhor forma de se utilizar?
Gostaria que os colegas mostrassem seu ponto de vista em relação a essa questão.
OCELOT 06/05/2016 11:20:47
#461865
Resposta escolhida
Não existe um correto, são duas formas de se fazer exatamente a mesma coisa, vai da preferência do programador.

Na prática, quando se usa Linq ele é na verdade transformado pelo compilador em chamadas a estas funções usadas com o Lambda
PERCIFILHO 06/05/2016 11:49:26
#461866
Valeu Ocelot, obrigado pela explicação.
Vou deixar o tópico aberto até à tarde para se alguém mais quiser dar sua opinião....
Tópico encerrado , respostas não são mais permitidas