2013-12-14 56 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祝你好運 –