在 Nhibernate 中创建查询“sum”多个列

Posted

技术标签:

【中文标题】在 Nhibernate 中创建查询“sum”多个列【英文标题】:Create query "sum" multiple columns in Nhibernate 【发布时间】:2016-11-08 10:37:23 【问题描述】:

需要使用Query Over (Nhibernate) C# 创建一个查询,以添加多个列。纯sql示例:

SELECT SUM(col1 + col2 + col3 + col4)
FROM tabela

首先我是这样做的:

Table table = null;
Session.QueryOver<Table>(() => tabela)
       .Select(Projections.Sum<Table>(t => t.col1))
       .Select(Projections.Sum<Table>(t => t.col2))
       .Select(Projections.Sum<Table>(t => t.col3))
       .Select(Projections.Sum<Table>(t => t.col4))

但是这样每列并生成 4 列,将全部相加并仅生成一列。

【问题讨论】:

【参考方案1】:

更简单:

Table table = null;
Session.QueryOver<Table>(() => tabela)
       .Select(Projections.Sum<Table>(t => t.col1 + t.col2 + t.col3 + t.col4))

【讨论】:

我喜欢这样,不要放置超过一列。显示异常:Message = the variable 't' type Table' is referenced in the scope' ',但未设置。 @MarcosVinicius 你的cols是什么类型的?可以为空吗? 我使用十进制?,可以为空。都是同一类型。 @MarcosVinicius 这可能是问题所在。只需检查它为 null 我是这样做的,但遇到了同样的问题。

以上是关于在 Nhibernate 中创建查询“sum”多个列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NHibernate 中使用 sql 查询创建表?

如何在 grafana 中创建普罗米修斯图来划分两个查询?

无法在 Prisma 中创建多个连接查询?

如何在 SQL 的查询中创建一列的 SUM?

如何使用 jQuery 在多个 div 中创建查询选择器?

实体框架与 NHibernate - 性能