2013-12-14 2 views
0

Я использую nHibernate Criteria, и я застрял на чем-то, что кажется, должно быть очень просто. в SQL это будет:nhibernate - ограничение на основе выражения

WHERE startPos + length > 17 

(startPos и ​​длина - две колонки на столе). Может кто-нибудь помочь мне достичь этого с NHibernate

+0

Я думаю, что это не представляется возможным критериям, если не использовать выражение SQL. Вместо этого используйте HQL или Linq. –

ответ

0

Это способ, как это сделать с помощью критериев в NHibernate:

var criteria = session.CreateCriteria<MyEntity>(); // C# MyEntity 

criteria.Add(
    // add restriction 
    Restrictions.Gt(
    // left part as a projection 
    Projections.SqlProjection(
     "(startPos + length) as myAlias" 
     , new[] {"myAlias"} 
     , new IType[] {NHibernateUtil.Boolean}) 
    // right part 
    , 17 
    )); 
+0

Спасибо, что отлично работает! - Раньше я не использовал прогнозы, поэтому думаю, что мне понадобится немного времени с руководством, чтобы выяснить, как это работает на самом деле :) – Andy

+0

NHibernate - удивительный инструмент. Это может сделать очень многое для нас. Так что не стесняйтесь и погружайтесь еще больше;) Удачи в NHibernate –

Смежные вопросы