假设我有一个查询,例如:
return NHibernateHelper.Session.QueryOver<SomeEntity>()
.JoinQueryOver(x => x.Entity2)
.JoinQueryOver(x => x.Entity3)
.Where(x = x.Id > 10)
.OrderBy( ???? )
.List<SomeEntity>();
现在假设我想按 Entity3.SortOrder 列排序,我该怎么做?
最佳答案
Entity2 e2Alias = null;
Entity3 e3Alias = null;
SomeEntity s = null;
return NHibernateHelper.Session.QueryOver<SomeEntity>()
.JoinAlias(() => s, () => e2Alias.SomeEntityReference) //here you need to specify the other side of the relation in the other entity that refernces th SomeEntity
.JoinAlias(() => s, () => e3Alias.SomeEntityReference)
.Where(() => s.Id > 10)
.OrderBy( () => e3Alias.SortOrder).Asc //or Desc
.List<SomeEntity>();
关于c# - 如何使用 QueryOver 从内连接中按列排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839000/