簡體   English   中英

如何使用Nhibernate QueryOver調用Oracle的regexp_like函數?

[英]How to call Oracle's regexp_like function with Nhibernate QueryOver?

我知道我需要使用Restrictions.Eq和Projections.SqlFunction,但是我已經嘗試了好幾個小時都沒有成功(我的測試應用程序崩潰了)。 是否有人有一個QueryOver示例,它將在Oracle中執行以下操作:

SELECT
  *
FROM
  V_LOG_ENTRIES
WHERE
  regexp_like(ENTRY_TEXT, '(\WPlaced\W)');

更新:好的,我認為部分問題是Restrictions.Eq期望相等,但是在這種情況下沒有相等,它只是WHERE子句中的函數調用...

語法應如下所示:

// this is inlined string, but could be concatenated from some params
var sql = @" regexp_like(ENTRY_TEXT, '(\WPlaced\W)') " +
           " AS isLike";
var sqlString = new SqlString(sql);

// the ICriterion
var criterion = new NHibernate.Criterion.SQLCriterion(sqlString
    , new string[] {}
    , new IType[] {}
    );

// the query
var query = session.QueryOver<LogEntry>()
    .Where(criterion)
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM