Джо
Вот подсказка, которая может помочь. Ваш комментарий о разнице между редактируемым списком и списком только для чтения вызвал у меня любопытство, поэтому я покопался немного глубже.
Основываясь на том, что я могу сказать, копаясь в коде CSLA 3.5, BusinessListBase реализует IQueryable (на самом деле это код "C" в коде CSLA, как в "Child"). Класс ReadOnlyListBase этого не делает.
Это может повлиять на то, какой метод расширения Dynamic LINQ OrderBy вызывается (их два), а один для IQueryable просто вызывает версию OrderBy для обычного IQueryable.
С другой стороны, если вы следуете за IQueryable в BusinessListBase, свойство Provider (типа IQueryProvider) делегирует CslaQueryProvider.
public IQueryProvider Provider
{
get {
return new Linq.CslaQueryProvider<T, C>(this);
}
}
Все это говорит о том, что из-за ограниченного времени, которое мне пришлось потратить, я думаю, что углубление (с отладчиком, да!) В материал CSLA LINQ, вероятно, оправдано. Из других обсуждений и продолжений в других местах я видел, что вы также указали на ошибку / проблему, зарегистрированную для CSLA. Вот ссылка:
Идентификатор проблемы CSLA 326 - OrderBy должен возвращать LinqBindingList, который работает с связанными сетками
Я подозреваю, что это больше связано с реализацией IQueryable в BusinessListBase, чем с чем-либо еще. И снова, похоже, что ReadOnlyListBase не реализует IQueryable ни напрямую, ни через наследование (в моей копии CSLA 3.5).
Надеюсь, это поможет.
Джефф Миллер