ma demande a le code suivant pour ajouter une méthode d'extension ToSortedList sur tout IEnumberable:Nhibernate 3 - LINQ Questions
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);
}
}
Dans l'ancien fournisseur LINQ (au-dessus de NHibernate 2.1) Je pourrais alors dire:
session.Linq<Article>().ToSortedList(a => a.Date, SortDirection.Ascending);
Cependant, l'utilisation du nouveau cela ne fonctionne pas construit fournisseur LINQ dans NHibernate 3 (changer LINQ to requête ci-dessus) et l'erreur suivante est générée:
« méthode spécifiée est n ot supporté. " - dans la méthode Initialize
Je serais vraiment reconnaissant si quelqu'un pouvait me montrer comment cela pourrait être fait.
pouvez-vous mettre la trace de la pile d'où l'exception est levée dans nhibernate? J'ai une idée de ce que la cause est, mais je pensais qu'il a jeté une exception différente, et généralement je ne vois que w/méthode d'extension utilisée à l'intérieur de la requête –