[英]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.