将此 SQL 查询转换为 NHibernate 标准查询

Posted

技术标签:

【中文标题】将此 SQL 查询转换为 NHibernate 标准查询【英文标题】:Convert this SQL Query to NHibernate Criteria Queries 【发布时间】:2011-08-28 15:33:21 【问题描述】:

需要将此 sql 查询转换为 nhibernate 标准语言...我该怎么做?

 select 
     * 
 from Feeds where Id = 
 (select MAX(Id) from Feeds where DataId = [VARIABLE PARAMETER])

【问题讨论】:

【参考方案1】:
Feed feed = _session.CreateCriteria<Feed>()
    .Add(Restrictions.Eq("DataId", "[VARIABLE PARAMETER]"))
    .AddOrder(new Order("_id", false))
    .SetMaxResults(1)
    .List<Feed>()
    .FirstOrDefault();

这将导致类似:

select TOP 1 * from Feeds where DataId = ??? Order By Id desc

从性能的角度来看,应该没有difference。

【讨论】:

以上是关于将此 SQL 查询转换为 NHibernate 标准查询的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate 将 sql 查询转换为 NHibernate QueryOver 查询

将 SQL 查询转换为 NHibernate

将此 SQL 查询转换为 mongodb 查询 -

如何将此 SQL 查询转换为 SQLAlchemy

如何将此查询转换为 Hive SQL?

将此 JPQL 查询转换为 SQL 查询