【发布时间】:2016-04-06 22:38:52
【问题描述】:
如果有人可以帮我将以下 SQL 转换为 nhibernate linq 到 QueryOver API,我将不胜感激。
SELECT p.ManufacturerName as Name, sum(ps.QtyAvail) as QuantityAvailable
from Product p
inner join (select ProductId, QtyAvail
from ProductStats ps
where ps.QtyAvail > 0) ps on p.ProductId = ps.ProductId
where ltrim(rtrim(isnull(p.ManufacturerName, ''))) <> ''
group by p.ManufacturerName
order by Name
这是我目前唯一可以编译和运行的东西。
var o = Session
.Query<Product>()
.Where(p => p.ManufacturerName != null && p.ManufacturerName.Trim() != string.Empty)
.Join(Session.Query<ProductStats>().Where(ps => ps.QtyAvail > 0), product => product.ProductId, stats => stats.ProductStatId,
(product, stats) => new { Name = product.ManufacturerName, QuantityAvailable = stats.QtyAvail })
.GroupBy(q => q.Name)
.Select(g => new { Name = g.Key, QuantityAvailable = g.Sum(v => v.QuantityAvailable) });
提前致谢。
【问题讨论】:
-
您是否尝试过使用 QueryOver API?如果您尝试,我们会帮助您,但如果您付出很少的努力,我们就不太可能提供帮助。
-
是的,我试过的都没有用
-
发布您尝试过的内容,以便我们看到您的错误。我们需要查看您的代码以提供帮助。
-
你不能使用 QueryOver 加入任意的
selects,只能加入映射表。您必须使用 HQL 或原始 SQL。
标签: sql linq nhibernate queryover