让我们假设我们有电影和HeaderItems。有时电影有一个HeaderItem链接到它的OneToOne,但并不总是。
现在我想按标题对所有电影进行排序,但我希望带有链接到它们的HeaderItem的电影在HeaderItem.Position上排序(如果HeaderItem不为空)。
我尝试在Films和OneToOne上实现一个OneToMany,但我可以让排序工作。他不能将QueryExpression转换为字符串,反之亦然。
你有什么建议吗?
发布于 2009-09-23 14:15:39
好了,我想通了。
首先,我将电影和HeaderItem之间的关系更改为OneToMany。
然后我用
Film.OrderedList("$ISNULL(HeaderItem.ShowOnTopInCategory, 0)-, Top10, MovieTitle");要获取电影列表,请先按headerItems排序,然后再按其他顺序排序。
效果很好。顺便说一句,ISNULL前面的$符号可以避免ISNULL被CoolStorage SQL解析器替换。
发布于 2009-09-17 13:18:28
我还没有尝试过,但这可能真的有效:
Film.List().OrderedBy("HeaderItem.Position,Title");如果这不起作用,我担心您将不得不在ORDER BY子句中使用CASE语句创建一个视图或执行即席SQL。
https://stackoverflow.com/questions/1438489
复制相似问题