После комментариев @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. (Выше)
Нет смысла возвращать каждое отдельное свойство в отдельный анонимный тип, просто сведите его в один пакет, поскольку анонимные типы предназначены для короткого срока службы и немедленного потребления.