Вы можете найти OrderBy in a HABTM relation here.
Добавить Сортировать к вашему определению отношения, создать компаратор, который реализует IComparer и что будет делать трюк
в своем коде, который даст Somthing так:.
[HasAndBelongsToMany(Table = "SupplierRecordUrls",ColumnKey = "SupplierID", ColumnRef = "RecordUrlID", Lazy = true, Sort="MyProject.RecordUrlNameComparer, MyProject.RecordUrl")]
public virtual IList<RecordUrl> RecordUrls
{
get;
set;
}
С:
public class RecordUrlNameComparer: IComparer<RecordUrl>
{
Int32 System.Collections.Generic.IComparer<RecordUrl>.Compare(RecordUrl x, RecordUrl y)
{
return new System.Collections.Comparer(System.Globalization.CultureInfo.CurrentCulture).Compare(x.Name, y.Name);
}
} // public class RecordUrlNameComparer: IComparer<RecordUrl>
я позволю вам прочитать статью :)
Edit:
Ваша ошибка теперь: Could not instantiate comparator class [MyProject.RecordUrl.RecordUrlComparer, MyProject.RecordUrl] for collection MyProject.Supplier.RecordUrls
Что бы я сделал:
Создайте Comparer как внутренний класс RecordUrls.
Изменить Сортировать по: Sort = "MyProject.Supplier.RecordUrl$RecordUrlComparer, MyProject.Supplier.RecordUrl"
Если он все еще не работает, вы все равно получите «не удалось создать экземпляр» ошибка, попробуйте сделать класс Comparer статичным. Я не уверен, как он используется, но если это статический вызов, это может сделать трюк :)
OrderBy принимает SQL, а не HQL/NHibernate/ActiveRecord. Может быть, вы указали имя свойства вместо имени столбца SQL? –