У меня есть сущность:NHibernate выбрать комплексную сумму
class Entity
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
}
Я хочу, чтобы выбрать сумму (A-B-C). Поэтому я хочу, чтобы запустить SQL, как это:
SELECT SUM(A-B-C) FROM Entity
я могу достигнуть его SqlProjection:
QueryOver.Of<Entity>().Select(Projections.SqlProjection("SUM(A-B-C) AS total", new[] { "total" }, new IType[] { NHibernateUtil.Int32 }));
Но я не хочу использовать строки. Как это можно сделать по-другому?
Спасибо. Ваше решение работает для моего дела. Но я думаю, что нет способа обрабатывать сумму с разными операторами (например, SUM (A-B + C)). И это странно, потому что 'Query() .Sum (x => x.A + x.B + x.C)' работает. К сожалению, я должен использовать QueryOver –
Ну, вы можете определить оператор '+', а затем вложить его в вызовы '-'. Но да, не идеальный. –