首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于联接列的nHibernate Projections.Sum

用于联接列的nHibernate Projections.Sum
EN

Stack Overflow用户
提问于 2020-04-22 20:53:04
回答 1查看 109关注 0票数 0

我正在创建一个具有如下条件的查询:

代码语言:javascript
复制
DetachedCriteria auftragCriteria = DetachedCriteria.For<Auftrag>("a");

我使用以下命令连接多个表:

代码语言:javascript
复制
DetachedCriteria positionJoin = auftragCriteria.CreateCriteria("a.Positionen", "p", JoinType.LeftOuterJoin);

我使用投影来填充我的object SubTypeAuftrag

代码语言:javascript
复制
ProjectionList projectionListSubTypeAuftrag = Projections.ProjectionList();

现在,我需要重新创建以下sql代码:

代码语言:javascript
复制
cast(sum(p.length * p.width / 1000) as decimal)

我尝试了以下几种方法:

代码语言:javascript
复制
projectionListSubTypeAuftrag.Add(Projections.Sum<Position>(p => p.length * p.width / 1000), "M1");

这会导致一个错误:

代码语言:javascript
复制
System.InvalidOperationException: 'variable 'p' of type 'xxx.Base.Position' referenced from scope '', but it is not defined'

我也试过了:

代码语言:javascript
复制
        projectionListSubTypeAuftrag.Add(
            Projections.Cast(
                NHibernateUtil.Decimal,
                Projections.SqlProjection("p.length * p.width/ 1000 AS result", new[] { "result" }, new IType[] { NHibernateUtil.Double })
                ),
            "M1"
            );

如何告诉nHibernate在哪里可以找到length/width列?

EN

回答 1

Stack Overflow用户

发布于 2020-07-22 14:28:58

也许这会给你指明正确的方向。

代码语言:javascript
复制
  var sqlMultiply = new VarArgsSQLFunction("(", "*", ")");
            var sqlDivide = new VarArgsSQLFunction("(", "/", ")");
            var multiplyLengthWidthProj = Projections.SqlFunction(sqlMultiply, NHibernateUtil.Decimal, Projections.Property(() => alias.Length), Projections.Property(() => alias.Width));

            var sumProjection = Projections.ProjectionList().Add(Projections.Sum(Projections.SqlFunction(sqlDivide, NHibernateUtil.Decimal, multiplyLengthWidthProj, Projections.Constant(1000))));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61365642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档