1

假设我们有 Films 和 HeaderItems。有时电影有一个 HeaderItem 链接到它 OneToOne 但并非总是如此。

现在我想按标题对所有电影进行排序,但我希望将 HeaderItem 链接到它们的电影按 HeaderItem.Position 排序(如果 HeaderItem 不为空)。

我尝试在 Films 和 OneToOne 上实现 OneToMany,但我可以让排序工作。他不能将 QueryExpression 转换为字符串,反之亦然。

关于如何做到这一点的任何想法?

4

2 回答 2

1

好的,我想通了。

首先,我将 Film 和 HeaderItem 之间的关系更改为 OneToMany。

然后我用

Film.OrderedList("$ISNULL(HeaderItem.ShowOnTopInCategory, 0)-, Top10, MovieTitle");

首先按 headerItems 获取电影顺序列表,然后是其余的。

效果很好。顺便说一句,ISNULL 前面的 $-sign 避免了 ISNULL 被 CoolStorage SQL 解析器替换。

于 2009-09-23T14:15:38.543 回答
0

我还没有尝试过,但这实际上可能有效:

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

如果这不起作用,恐怕您必须在 ORDER BY 子句中使用 CASE 语句创建视图或执行临时 SQL。

于 2009-09-17T13:18:28.437 回答