2009-09-17 4 views
1

Films 및 HeaderItems가 있습니다. 때때로 Film에는 OneToOne에 연결된 HeaderItem이 있지만 항상 그런 것은 아닙니다.CoolStorage의 nullable 하위 속성에 대한 정렬

이제 제목에 모든 영화를 정렬하고 싶습니다. 그러나 HeaderItem.Position (HeaderItem이 null이 아닌 경우)을 정렬하기 위해 연결된 HeaderItem이있는 영화를 원합니다.

필자는 OneToMany를 Films 및 OneToOne에 구현하려고 시도했지만 정렬 작업을 수행 할 수 있습니다. 그는 QueryExpression을 String으로 또는 그 반대로 변환 할 수 없습니다.

방법에 대한 아이디어가 있으십니까?

+0

시도가 표시 될 수 있습니까? – Mark

+0

HeaderItem.Position (존재하는 경우), Title 순으로 먼저 정렬해야합니다. 이것은 HeaderItem을 가진 모든 레코드가 먼저 올 것이라는 것을 의미합니다. –

+0

그래, 그건 일반적인 생각이 될거야. –

답변

1

좋아, 알아 냈어.

먼저 필름과 HeaderItem 간의 관계를 OneToMany로 변경했습니다.

그럼 내가 먼저하고 나머지 headerItems에 의해 영화 순서의 목록을 얻을 수
Film.OrderedList("$ISNULL(HeaderItem.ShowOnTopInCategory, 0)-, Top10, MovieTitle"); 

을 사용했다.

훌륭한 작품입니다. Btw, ISNULL 앞의 $ 기호는 ISNULL이 CoolStorage SQL 구문 분석기로 대체되는 것을 방지합니다.

0

나는 그것을 시도하지 않은, 그러나 이것은 실제로 수도 작동 : 즉, 난 두려워 작동하지 않는 경우

Film.List().OrderedBy("HeaderItem.Position,Title"); 

당신이보기를 만들거나 사용하여 임시 SQL을 실행해야합니다 ORDER BY 절에있는 CASE 문.

+0

좋아,이 잘 작동하지만 다른 쿼리에서 우리는 단지 HeaderItem을 가지고 영화를 선택할 수 없습니다. HAS 또는 IS NOT NULL이 작동하지 않습니다. –

관련 문제