OrderByDescending не работает в моем запросе LINQ - PullRequest
0 голосов
/ 22 марта 2019

Я столкнулся с проблемой запроса, в котором я пытаюсь отсортировать результат по убыванию, но он этого не делает. Я просмотрел несколько постов по stackoverflow с похожей проблемой, но ни одно из решений не помогло. Мне было интересно, если кто-то может указать, что не так с моим кодом. Вот часть запроса, относящаяся к проблеме:

from followup in ctx.FollowUps
    .Where(f => f.DestEntityId == user.Id 
           && f.DestEntityType == (int)ContactEntityTypeEnum.User)
    .OrderByDescending(x => x.AddDate)
select new
{ 
    user = new { Firstname = user.Firstname },
    followup = new { followup.NextFollowUpDate }
});

Я также пытался добавить .ToList () перед .OrderByDescending (), но это тоже не решило проблему.

1 Ответ

0 голосов
/ 22 марта 2019

После комментариев @SILENT & @ D.Shih ваше выражение Linq выглядит немного странно.

var followUps =  ctx.FollowUps
    .Where(f => f.DestEntityId == user.Id 
           && f.DestEntityType == (int)ContactEntityTypeEnum.User)
    .OrderByDescending(x => x.AddDate)
    .Select(x => new
    { 
        UserFirstname = user.Firstname,
        AddDate = x.AddDate,
        FollowupDate = x.NextFollowUpDate
    }).ToList();

Это упорядочит результаты по AddDate, а не по NextFollowUpDate, поэтому я добавил AddDate к выводу, чтобы избежать путаницы между ними, так как я не знаю, как вы оценили, что они были не в порядке основанный только на просмотре NextFollowUpDate. Я не рекомендую смешивать LinQL (from / where / select) с методами Fluent. (Выше)

Нет смысла возвращать каждое отдельное свойство в отдельный анонимный тип, просто сведите его в один пакет, поскольку анонимные типы предназначены для короткого срока службы и немедленного потребления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...