nhibernate之使用 NHibernate Criteria 对多个属性/列求和
thcjp
阅读:79
2025-06-02 22:19:02
评论:0
有谁知道如何使用 NHibernate 标准表达以下 SQL 语句?
SELECT SUM(Val1 + Val2) FROM SomeTable
看起来很简单,但 AFAIK 我似乎无法找到一种方法来做到这一点,而不返回一个值数组,分别返回 Val1 + Val2 的总和,然后从数组中求和,我想避免这种情况。
请您参考如下方法:
在@Jaguar 在他的回答中提到的博客文章的评论中 NHibernate and the missing OperatorProjection是另一种解决方案:
session.CreateCriteria().SetProjection(
Projections.Property<SomeType>(val => val.Id),
Projections.Property<SomeType>(val => val.Duration),
Projections.SqlFunction(
new VarArgsSQLFunction("(", "+", ")"),
NHibernateUtil.Double,
Projections.Property<SomeType>(val => val.Duration),
Projections.Constant(1)
)
).List();
所有功劳归于 Tomek .
这可能看起来像:
Projections.Sum(
Projections.SqlFunction(
new VarArgsSQLFunction("(", "+", ")"),
NHibernateUtil.Int32,
Projections.Property<SomeTableType>(val => val.Val1),
Projections.Property<SomeTableType>(val => val.Val2)
)
)
特别
VarArgsSQLFunction 很有用。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



