Lets说我们有Films和HeaderItems。有时电影有一个HeaderItem链接到它OneToOne但不总是。
现在我想对他们标题上的所有电影进行排序但是我希望连接到HeaderItem的电影能够对HeaderItem.Position进行排序(如果HeaderItem不为空)。
我尝试在Films和OneToOne上实现OneToMany,但我可以让排序工作。他无法将QueryExpression转换为String,反之亦然。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
好的,我明白了。
首先,我将Film和HeaderItem之间的关系更改为OneToMany。
然后我用了
Film.OrderedList("$ISNULL(HeaderItem.ShowOnTopInCategory, 0)-, Top10, MovieTitle");
首先获取一个由headerItems订购的电影列表,然后是其余部分。
效果很好。顺便说一句,ISNULL前面的$ -sign避免了被CoolStorage SQL解析器替换的ISNULL。
答案 1 :(得分:0)
我没有尝试过,但实际上可能会有效:
Film.List().OrderedBy("HeaderItem.Position,Title");
如果这不起作用,我担心您必须使用ORDER BY子句中的CASE语句创建视图或执行临时SQL。