Linq-OrderByDescending对me-ASP.net MVC

时间:2017-04-26 09:24:36

标签: c# asp.net asp.net-mvc linq

我想通过 idEtatD 订购我的列表,但是这个属性不是我的表主键或id它是从另一个表迁移的普通属性,坚持 OrderBy OrderByDescending 没有给我一个结果,我的列表仍未按 idEtatD 排序。

 public ActionResult ListeDemande( int? page)
        {


            traçabilitérepository=new TraçabilitéDemandeRepository(db);

            var listdemandes = (from d in db.Demande_Gabarit
                                join t in db.Traçabilité_Demande_Gabarit
                                    on d.id_demande equals t.iddemande into ThisList
                                from t in ThisList.DefaultIfEmpty()

                                select new
                                {
                                    id_demande=d.id_demande,
                                    NumDemande = d.NumDemande,
                                    Emetteur = d.Emetteur,
                                    Date = d.Date,
                                    Ligne = d.Ligne.designation,
                                    Etat = t.Etat_Demande_Gabarit.EtatDemande

                                }).ToList().Select(x => new DemandeViewModel()
                                {
                                    NumDemande = x.NumDemande,
                                    Emetteur = x.Emetteur,
                                    Date = x.Date,
                                    designation = x.Ligne,
                                    EtatDemande = x.Etat,
                                    id_demande = x.id_demande
                                });
            int pageSize = 10;
            int pageNumber = (page ?? 1);
            return View(listdemandes.OrderByDescending(x => x.idEtatD).ToList().ToPagedList(pageNumber, pageSize));
        }

我需要你的帮助,谢谢你。

1 个答案:

答案 0 :(得分:2)

您可以在开头订购商品,但需要将其包含在列表中:

traçabilitérepository = new TraçabilitéDemandeRepository(db);

            var listdemandes = (from d in db.Demande_Gabarit
                                join t in db.Traçabilité_Demande_Gabarit
                                    on d.id_demande equals t.iddemande into ThisList
                                from t in ThisList.DefaultIfEmpty()
                                orderby t.idEtatD descending

                                select new
                                {
                                    id_demande = d.id_demande,
                                    NumDemande = d.NumDemande,
                                    Emetteur = d.Emetteur,
                                    Date = d.Date,
                                    Ligne = d.Ligne.designation,
                                    Etat = t.Etat_Demande_Gabarit.EtatDemande,
                                    idEtatD = XXXX
                                }).ToList().Select(x => new DemandeViewModel()
                                {
                                    NumDemande = x.NumDemande,
                                    Emetteur = x.Emetteur,
                                    Date = x.Date,
                                    designation = x.Ligne,
                                    EtatDemande = x.Etat,
                                    id_demande = x.id_demande
                                });