将SQL重写为FluentNHibernate

时间:2013-06-16 16:25:31

标签: c# sql sql-server nhibernate fluent-nhibernate

我正在使用NHibernate 3.3.1.4000FluentNHibernate 1.3.0.733SQL Server 2012,我需要重写查询到IQueryOver,以便在服务器端进行此计算,而无需存储过程调用。

WITH CTE_Links AS 
(
    SELECT Article1, MIN(Article2) Article2
    FROM dbo.LinkBetweenArticles
    GROUP BY Article1
    HAVING Article1 > MIN(Article2)
)

SELECT COUNT(*)
FROM dbo.ArticlePlacedBySeller a
LEFT JOIN CTE_Links l ON a.Id = l.Article1
WHERE l.Article2 IS NULL 
AND ConfirmedPosition_Id = 1000

如果需要,可以阅读脚本描述here

1 个答案:

答案 0 :(得分:0)


据我所知,不可能使用原生的IQueryOver API来实现这一目标。恕我直言,你可以使用此CTE查询作为自定义查询。您可以按照http://refactoringaspnet.blogspot.com/2011/04/using-common-table-expressions-to.html链接找到解决方案。