мое приложение имеет следующий код, чтобы добавить метод расширения ToSortedList на любом IEnumberable:Nhibernate 3 - LINQ Проблемы
public class SortedList<T, TResult> : List<T> {
public SortedList(IEnumerable<T> source, Expression<Func<T, TResult>> sortBy, SortDirection sortDirection) {
Initialize(source is IQueryable<T> ? source as IQueryable<T> : source.AsQueryable(), sortBy, sortDirection);
}
protected void Initialize(IQueryable<T> source, Expression<Func<T, TResult>> sortBy, System.Web.UI.WebControls.SortDirection sortDirection) {
AddRange(sortDirection == SortDirection.Ascending ? source.OrderBy(sortBy) : source.OrderByDescending(sortBy));
}
}
public static class SortingExtensions {
public static SortedList<T, TResult> ToSortedList<T, TResult>(this IEnumerable<T> source, Expression<Func<T, TResult>> sortBy, SortDirection sortDirection) {
return new SortedList<T, TResult>(source, sortBy, sortDirection);
}
}
В старом поставщика LINQ (на вершине NHibernate 2.1) я мог бы сказать:
session.Linq<Article>().ToSortedList(a => a.Date, SortDirection.Ascending);
Однако, используя новую встроенные в поставщике LINQ в NHibernate 3 (изменить Linq создать запрос выше) это не работает, и выбрасывается следующее сообщение об ошибке:
«Указанный метод п от поддержки ". - в рамках метода Initialize
Я был бы очень признателен, если бы кто-нибудь мог показать мне, как это можно сделать.
Вы можете поместить трассировку стека, где исключение выбрасывается из nhibernate? У меня есть представление о причине, но я подумал, что это забросило другое исключение, и обычно я вижу только метод w/extension, используемый внутри запроса. –