У меня есть объект с вложенным объектом, и я хочу упорядочить список объектов по свойству вложенного объекта.Как я должен, я использую старую версию NHibernate (1.0 или что-то).
public class MyObject
{
public NestedObject
{ Get; Set; }
}
public class NestedObject
{
public string Name
{ Get; Set; }
}
public List<MyObject> GetOrderedByNameOfNestedObject()
{
ISession session = SessionProvider.GetCurrentSession();
List<MyObject> objects = new List<MyObject>();
ICriteria criteria = session.CreateCriteria(typeof(MyObject));
criteria.AddOrder(new NHibernate.Expression.Order("NestedObject.Name", true));
..
return objects;
}
Я получаю ошибку
could not resolve property:NestedObject.Name of :MyObject
Я почти уверен, что это возможно в более новых версиях NHibernateно в старых тоже не знаю.Я могу обойти это с помощью HQL, но хотел бы избежать этого.
ОБНОВЛЕНИЕ
Я тоже пытался вставить
criteria.CreateAlias("NestedObject", "n");
criteria.AddOrder(new NHibernate.Expression.Order("n.Name", true));
, но безуспешно.
Моя версия NHibernate - 1.0.2.
Трассировка стека
в NHibernate.Persister.AbstractPropertyMapping.ToColumns (псевдоним строки, свойство StringName)в NHibernate.Expression.ctor (IOuterJoinLoadable persister, фабрика ISessionFactoryImplementor, критерии CriteriaImpl) в NHibernate.Impl.SessionImpl.Find (критерии CriteriaImpl) в NHibernate.Impl.CriteriaImpl.List () в объекте DirectLink.Persistence.RellyGestFireIventGroup.ReTimeFortingGroup.ReposityGroup.ReposityGest.Group.ReposityGest.GroupureTypeGroup, String orderCategory, логическое возрастание) в C: \ Users \ jan-frederik.carl \ Documents \ Visual Studio 2005 \ Projects \ HRE \ DirectLink \ Persistence \ Repositories \ ProcessRepository.cs: строка 62 в DirectLink.Applications.Summit.Summit_Interface2.EntriesGrid_Sorting (Отправитель объекта, GridViewSortEventArgs e) в C: \ Users \ jan-frederik.carl \ Documents \ Visual Studio 2005 \ Projects \ HRE \ DirectLink \ DirectLink_Web \ Applications \ Summit \ Summit_Interface2.aspx.cs: строка 131 в системе.Web.UI.WebControls.GridView.OnSorting (GridViewSortEventArgs e) в System.Web.UI.WebControls.GridView.HandleSort (String sortExpression, SortDirection sortDirection) в System.Web.UI.WebControls.GridView.HandleSortring.Web.UI.WebControls.GridView.HandleEvent (EventArgs e, Boolean argumentsValidation, String validationGroup) в System.Web.UI.WebControls.GridView.RaisePostBackEvent (String eventArgument) в System.Web.UI.WebControls.GridS..UI.IPostBackEventHandler.RaisePostBackEvent (Строковое событиеАргумент) в System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument) в System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData) в System.Web.UI.Page.ProcessReleAsantainSignSignSense ().