Я реализовал IComparer для сортировки результатов на странице поиска. Иногда на производстве пользователи получают эту ошибку. Все данные для поиска (критерии, разбиение по страницам, сортировка) находятся в строке запроса, и я использую библиотеку ELMAH, поэтому я могу видеть подробности в сообщении электронной почты об ошибке. Если я скопирую строку запроса от пользователя, который получил ошибку, в мой браузер, страница будет работать нормально. Так что это своего рода недетерминированный, по-видимому.
Это мой компаратор:
Public Class ReverseDateComparer
Implements IComparer(Of Promotion)
Public Function Compare(ByVal x As Promotion, ByVal y As Promotion) As Integer Implements System.Collections.Generic.IComparer(Of Promotion).Compare
If y.ExpirationDate = x.ExpirationDate Then
Return x.PlainTitle.CompareTo(y.PlainTitle)
Else
Return y.ExpirationDate.CompareTo(x.ExpirationDate)
End If
End Function
End Class
Так что, в основном, сортировка по дате истечения по убыванию, а затем по заголовку по возрастанию. Что-то явно не так с этим?