Dans les commentaires de l'article du blog que @Jaguar a mentionné dans sa réponse NHibernate et la disparition de OperatorProjection est une solution alternative :
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();
Tout le mérite revient à Tomek .
Cela pourrait ressembler à quelque chose comme :
Projections.Sum(
Projections.SqlFunction(
new VarArgsSQLFunction("(", "+", ")"),
NHibernateUtil.Int32,
Projections.Property<SomeTableType>(val => val.Val1),
Projections.Property<SomeTableType>(val => val.Val2)
)
)
En particulier VarArgsSQLFunction
est utile.