c# - 如何使用 QueryOver 从内连接中按列排序?

标签 c# nhibernate queryover

假设我有一个查询,例如:

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/

相关文章:

c# - 如何在多线程应用程序中安全地使用 SmtpClient.SendAsync

c# - 将字符串数据转换为字典

NHibernate Criteria 通过 group by 和另一个表中的 itemid 总和来选择项目

c# - QueryOver 查询中的重要顺序

c# - Nhibernate-尽管加入了QueryOver仍获取实体

c# - 在 dll 中创建事件并在 Form 中处理事件

c# - 在 OpenCVSharp 中水平翻转图像

c# - Quartz.net 调度程序内存泄漏

mysql - 使用 NHibernate 从带有外键的 MySQL 表中获取数据

nhibernate - 内连接后防止多个实例