【问题标题】:How can I use RelationshipFilter in 2sxc Visual Query with text field instead of entity field?如何在带有文本字段而不是实体字段的 2sxc 可视化查询中使用关系过滤器?
【发布时间】:2020-10-13 18:32:46
【问题描述】:

我正在尝试与 this example 在标题“查询其他字段的关系上的属性”下所做的相同。 我正在编辑博客应用程序可视化查询。 所以我有RelationshipFilter,它通过Default 获取Category 类型的实体。我想按字段Name 过滤它们。在这里,我可以从参数或帖子列表及其类别中获取名称列表。据我了解,这不是问题。

所以看起来Name 必须是实体类型。我现在正在努力使用这个过滤器,因为我想通过简单文本类型的字段Name 过滤Category。这意味着我在Relationship Attribute 中没有什么可指定的。 EntityTitle 或只是空的 Relationship Attribute 字段不起作用并导致 Bad Request 错误。那么有没有办法让它工作呢?

附: ValueFilter 不是一个选项,因为它不支持在没有满足条件的项目时不返回任何内容,并且它仅支持按项目的 Attribute 过滤,其中包含 Value 并且没有选项 Value 可以包含 Attribute 中的任何内容并带有分隔符。

【问题讨论】:

    标签: dotnetnuke 2sxc dnn9


    【解决方案1】:

    RelationshipFilter 仅适用于关系(项目与项目) - 您似乎想要进行字符串比较。

    我不太确定你应该做什么,因为我没有上下文,但如果事情变得非常特别,最好改用 LINQ。在此处查看 LINQ 教程:https://2sxc.org/dnn-tutorials/en/razor/linq/home

    【讨论】:

    • Linq 适用于页面上已有代码的数据。我想在数据库级别应用过滤器。例如,我想在Title 属性中获取所有包含“word”或“debug”的帖子。所以我会在Filter中指定“word,debug”,在Relationship Field中指定“Title”,逗号分隔符和运算符containsany,但我不需要Relationship Attribute,因为我需要项目本身,因为项目是字符串据我了解,在视觉查询中没有任何属性。
    • 并且 ValueFilter 不是一个选项,因为例如,它不允许从过滤器“word,debug”中获取标题为“word and another one”的帖子。
    • 使用 linq 分页不会加快网站的工作,因为每个页面都会检索所有帖子以应用过滤和排序。
    • 我对你想要做什么感到很困惑——基本上我根本不理解“单词,调试”。你能举一个具体的例子吗?我很确定这应该很容易实现 - 可能使用 2-3 个令牌。顺便说一句:所有 2sxc 数据都缓存在 Web 服务器上的内存中。所以 VisualQuery 和 LINQ 做同样的事情,只是视觉查询有额外的优化并且更容易在许多场景中使用。
    • “word,debug”是指,例如,我有一个值为“word,debug”的查询字符串参数。所以它的值是一个用逗号分隔的单词列表。假设我需要获取帖子列表,其中包含标题中的任何这些单词。例如标题“word and another one”和“debug in process”都满足这个条件。之后我会应用分页。看起来很简单的任务,但我在当前的视觉查询功能中看不到它的解决方案。看起来必须在 razor pages 后面的代码中完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 2018-05-27
    • 2023-03-21
    • 1970-01-01
    • 2019-08-17
    • 2017-01-30
    相关资源
    最近更新 更多