Заказ Asp.net не заказывает

1

Почему мой Linq не заказывает MenuID?

Dim categories = Aggregate pgmAccess In rvdDB.PgmAccesses 
                 Where pgmAccess.OperatorID = RData.UserName.ToString.ToUpper 
                 Join menuDef In rvdDB.MenuDefs 
                 On menuDef.ProgramName Equals pgmAccess.Program 
                 Order By menuDef.MenuID 
                 Select menuDef.MenuDescription Distinct 
                 Into ToList()
Теги:
linq
order

2 ответа

1
Лучший ответ

Вы сначала заказываете записи, а затем используете оператор Distinct, который нарушает ваш заказ. Если вы хотите получить упорядоченные результаты, вы должны сначала использовать разные и только затем упорядочить.

  • 0
    Хорошо, но тогда мой объект больше не существует, так как я могу заставить это работать?
1

Distinct полностью разрешено разбить порядок (т.е. Не обязательно возвращает результаты в том порядке, в котором они были переданы).

Другими словами, чтобы упорядочить ваши данные с помощью MenuID, вам необходимо заказать Order By after Distinct.

  • 0
    Я получаю сообщение об ошибке, объект не существует, когда я это делаю
  • 0
    @PieterdeVries Что именно вы пытаетесь сделать? Если есть две строки с одним и тем же MenuDescription, имеет ли значение, какая из них появляется в результате (то есть либо в порядке, если только одна, либо она должна быть первой в порядке MenuID?)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню