2014-07-16 1 views
1

내가 Restrictions.Eq 및 Projections.SqlFunction을 사용해야한다는 것을 알고 있지만 몇 시간 동안 아무런 성공도 거두지 않고 시험해 보았습니다.Nhibernate QueryOver를 사용하여 Oracle의 regexp_like 함수를 호출하는 방법은 무엇입니까?

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

업데이트 : 좋아, 문제의 일부가 Restrictions.Eq는 평등을 기대하고 있다는 것입니다 생각하지만,이 경우에는 평등이없는, 그건 사람이 오라클에서 다음을 수행 것 인 QueryOver 예제가 있습니까 단지 구문은 다음과 같이 WHERE 절에 함수 호출 ...해야

답변

5

:

// 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) 
    ... 
+0

당신은 덕분에 라이브 안전한 사람이야! 나는 투표를하고 싶지만, 나는 아직 충분한 평판을 얻지 못한 것 같다. – Xorcist

+0

위대한 그것은 어쨌든 선생님을 도왔습니다.) NHibernate, 멋진 도구를 즐기십시오 ... –

+0

오라클 정규식의 전체 예제는 +1하기가 어렵습니다. :) – zx81

관련 문제