NÃO OBEDECE ORDENAÇÃO

JCM0867 10/07/2024 10:46:44
#503388
Alterado em 10/07/2024 11:21:22 Bom dia Pessoal,

tenho a seguinte situação em ASP.net C# MVC:

public RemessasDia Get(int id)
{
return UnitOfWork.EntityRepository()
.Find()
.Where(x => x.RemessaDiaID == id)
.OrderByDescending(x => x.Dia)
.ThenByDescending(x => x.NomeArquivo)

.FirstOrDefault();
}

Simplesmente não obedece a ordenação em negrito, fica ordenado pela Chave Principal.
Abaixo o grid que mostram os dados.

<td>
@Html.DisplayFor(modelItem => item.RemessaDiaID)
</td>
<td>
<span style="display:none;">@Html.Raw(item.Dia.Value.ToString("yyyyMMddHHmmssfff"))</span>
@Html.Raw(item.Dia.Value.ToString("dd/MM/yyyy"))
</td>
<td>
@Html.DisplayFor(modelItem => item.TipoBoletoRemessa)
</td>
<td>
@Html.DisplayFor(modelItem => item.NumeroRemessa)
</td>
<td>
@Html.DisplayFor(modelItem => item.NomeArquivo)
</td>


Pq não ordena, sempre fiz assim e nesse caso não ordenou.
Att,
JCM0867 10/07/2024 10:52:45
#503389
mmmm, apagou o <dt/> entre os @Html.Display...
KERPLUNK 10/07/2024 18:39:00
#503391
Se vai retornar mais de um registro, não use o FirstOrDefault. Nesse caso, simplifique para:

return UnitOfWork.EntityRepository()
.Where(x => x.RemessaDiaID == id)
.OrderByDescending(x => x.Dia)
.ThenByDescending(x => x.NomeArquivo);


Se for retornar um só, também pode ser simplificado, mas daí as ordenações não fazem sentido(ordenar só um registro?)

return UnitOfWork.EntityRepository()
.FirstOrDefault(x => x.RemessaDiaID == id);
JCM0867 10/07/2024 20:32:15
#503392
Alterado em 10/07/2024 22:02:14 Opa,

o .EntityRepository() ficou sublinhado em vermelho //Erro abaixo
E a tabela RemessasDia?
Eu acho que estou no lugar errado querendo ordernar , naõ faz sentido ter um Get(int id) que seria para somente um registro
Na verdade não fui eu que fiz isso, So querendo criar uma ordem inicial

Será que seria aqui? Só que tb não ordena
public IEnumerable<RemessasDia> Get()
{
return UnitOfWork.EntityRepository<RemessasDia>()
.Find()
.OrderByDescending(x => x.Dia)
.ThenBy(x => x.NomeArquivo)
.AsNoTracking();
}

Att


Faça seu login para responder