Fui tentar usar essa função de media em outra tabela mas deu erro, não encontra a campo Total usada na clausula do orderby
Fui tentar usar essa função de media em outra tabela mas deu erro, não encontra a campo Total usada na clausula do orderby
Olá, Maurici, você pode colar aqui o seu código, para podermos entender melhor o problema? Obrigado!
Olá Marcelo. Baixei o seu codigo fonte e vi onde estava o meu erro.
De qualquer forma agradeço a ajuda.
Muito Obrigado. E o seu treinamento está sendo bem proveitoso.
Codigo Errado:
public static decimal Mediana<TSource>(this IQueryable<TSource> origem, Expression<Func<TSource, decimal>> selector)
{
using (var contexto = new AluraTunesEntities())
{
int contagem = origem.Count();
var funcSeletor = selector.Compile();
var ordenado = contexto.NotasFiscais.Select(ag => ag.Total)
.OrderBy(total => total);
var elementoCentral_1 = ordenado.Skip((contagem - 1) / 2).First();
var elementoCentral_2 = ordenado.Skip(contagem / 2).First();
decimal mediana = (elementoCentral_1 + elementoCentral_2) / 2;
return mediana;
}
}
Codigo Correto:
public static decimal Mediana<TSource>(this IQueryable<TSource> origem, Expression<Func<TSource, decimal>> selector)
{
int contagem = origem.Count();
var funcSeletor = selector.Compile();
var ordenado = origem
.Select(selector)
.OrderBy(x=> x);
var elementoCentral_1 = ordenado.Skip((contagem - 1) / 2).First();
var elementoCentral_2 = ordenado.Skip(contagem / 2).First();
decimal mediana = (elementoCentral_1 + elementoCentral_2) / 2;
return mediana;
}
Muito bom, Maurici! E obrigado por prestigiar o nosso curso! ;-)