2
마지막 줄의 아래 예에서 날짜 표현을 수행하는 방법을 잘 모르겠습니다. 유사한 쿼리가 실행되지 않습니다. 나는 어떤 종류의 Projections SqlFunction을 사용해야한다고 생각하니? 누구 한테 도움이 되니?날짜 값 표현식이있는 Fluent Nhibernate QueryOver
Session.QueryOver(() => myobj)
.JoinAlias(() => myobj.Object,() => o1)
.Where(() => myobj.SomeInt > o1.Date.Subtract(someTime).Minutes);
명시 적으로 사용하지 않으려면 일부 하위 쿼리가 더 적합해야합니다. SQL에 대한 조정을 통해 예제를 작성했습니다 문자열은 "DATEDIFF (mi,?, {alias} .SomeDate)"와 같이 작동합니다. {alias} .SomeInt와 {alias} .AnotherInt 사이에 있습니다. 제 질문은 제 실제 코드에 여러 별칭이 있고 .SomeDate와 .SomeInt는 다른 유형의 별칭입니다. 올바른 별칭을 지정하려면 어떻게해야합니까? 도와 주셔서 감사합니다. – Suedeuno
내 대답은 일반적인 질문에 대한 힌트 일뿐입니다. SqlExpression의 방법과 성능을 보여주는 출발점을 알기 만하면됩니다. 음, * DATEDIFF * 결과를 반환하는'o1'의 detached'subquery'를 생성하십시오. 이 경우'{alias}'는'o1' 별명으로 대체 될 것입니다. 다음 단계는'.Where (Subqueries.PropertyGt ("SomeInt", subQuery.DetachedCriteria))'를 추가합니다. * '하위 쿼리'찾기 * 작동 예제는 여기 http://stackoverflow.com/a/14080092/1679310 –