Тот факт, что запрос в разделе «Правка» работает, указывает на то, что проблема в предложении OrderBy(n => n.SortOrder)
, потому что только эта часть запроса ...
DataContext.Entities.Nodes
.Where(n => n.Parent.Name == node.Key)
... фактически выполняетсяна сервере.Вызывая .ToArray()
, вы заставляете запрос выполняться, и (несортированный) список загружается в память.Следующий OrderBy
определяет запрос в этом списке (который является IEnumerable
, а не IQueryable
больше).Этот второй запрос будет затем выполняться в памяти в этом списке, и EF или SqlCe не участвуют в этой сортировке.
Но в целом SqlCe поддерживает OrderBy
, поэтому остается вопрос, почему первыйзапрос вызывает исключение.
Какой тип Node.SortOrder
вы пытаетесь отсортировать?Это может быть обнуляемый, например, или какой-то «экзотический» тип, по которому SqlCe не может сортировать?