nhibernate 查询 SubQueryExpression

标签 nhibernate subquery

有人可以解释一下什么是基于 NHibernate SubQueryExpression 的查询吗?非常欢迎任何带有具体示例的链接。

谢谢

更新: 假设我有一个名为 Beach 的实体。那个海滩可以有很多意象。我想选择海滩实体及其图像集合中的第一张图像。我只想携带所选的图像对象,或者如果我仅选择第二个对象来仅携带该对象。

我不想像 Images.First() 那样访问,因为它将初始化所有集合,如果您需要更多信息,请询问。

最佳答案

var query = session.QueryOver(() => vehicleAlias)
            .Left.JoinAlias(() => vehicleAlias.VehicleRegistrations, () => vehicleRegistrationAlias)
            .WithSubquery.WhereProperty(() => vehicleRegistrationAlias.RegistrationExpiryDate).Eq(
                QueryOver.Of(() => vehicleRegistrationAlias2)
                    .Where(() => vehicleRegistrationAlias2.Vehicle.Id == vehicleAlias.Id)
                    .Select(Projections.Max<VehicleRegistration>(ps => ps.RegistrationExpiryDate)));
        query.Left.JoinAlias(() => vehicleRegistrationAlias.VehicleRegistrants, () => vehicleRegistrantAlias)
            .Where(() => vehicleRegistrantAlias.Client.Id == clientId);

这是我刚刚为我的工作编写的子查询,花了我一段时间才写出来。我真的不知道你具体要问什么,但这是一个示例。如果您对此有任何疑问,请告诉我。

.Select(Projections.Max(ps => ps.RegistrationExpiryDate))) 此行完成子查询中的所有工作。它选择最近的车辆登记。车辆登记别名2是作为子查询被查询的对象。

因此,这只会撤回车辆当前的车辆注册信息。一辆车可能有多个车辆登记。它的 .Select 语句可以修改为 .OrderById.Desc.SelectTop(1) 或类似的内容。

我希望此编辑有所帮助。

关于nhibernate 查询 SubQueryExpression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862654/

相关文章:

c# - NHibernate 和取消对实体的更改

asp.net - Intranet 应用程序的数据库身份验证

php - MySQL/PHP : Using multiple sub-queries in a query selecing multiple results, 这是一个坏主意吗?

mysql - 子查询 : slow. 中的 GROUP BY 使用 View 有帮助,但这可以在一个查询中完成吗?

c# - nHibernate ICriteria 加入条件

c# - 当实际进行更改需要批准时如何保存对象?

multithreading - Nhibernate中的多线程UnitOfWork

mysql - 尝试编写一个查询来获取最高和最低收入并打印帐户健康状况?

mysql - 查询中的开始太多,或者这是 kosher?

MySQL-在 FROM 子句中使用子查询创建 View