Формула в NHibernate критериях

#c# #nhibernate

#c# #nhibernate

Вопрос:

Я хотел бы добавить формулу к проекции в критериях NHibernate:

У меня есть что-то вроде этого:

Emp Id Имя точки уровня 
1 Майк 1 50 
2 Джефф 2 100 
3 Стив 3 320 

Я хотел бы, чтобы результаты были (Уровень * Баллы):

Результат Emp Id Name 
1 Майк 50 (1*50)
2 Джеффа 200 (2*100)
3 Стива 960 (3*320)

Это часть моего DetachedCriteria, поэтому мне нужно это в критериях, А НЕ на уровне сущности. Приветствуется любой другой способ, если это делается с использованием проекций.XXXX (..)

Ответ №1:

NHibernate не имеет этой функциональности из коробки. Вот реализация OperatorProjection

Если API DetachedCriteria не так важен, вы можете перевести свой DetachedCriteria в отдельный запрос:

 var query = QueryOver.Of<Entity>().Select(x => x.Level * x.Points);
  

Комментарии:

1. Я получаю это «Не удалось определить элемент из (x.Level * x.Points)». Есть идея?

2. Я думаю, что это невозможно. Смотрите это: http://osdir.com/ml/nhusers/2010-12/msg00375.html