2sxc:为City添加Entity内容类型,如何过滤仅显示Attraction实体?
在2sxc中为City的Entity字段设置初始过滤(仅显示Attraction实体)
嘿,刚好处理过类似的2sxc实体关联需求,给你一步步拆解怎么实现:
核心思路
你的场景是City(1)和Attraction(多)的一对多关系,要让City的Entity关联字段默认只加载Attraction类型的实体,本质是给这个字段设置固定的初始过滤规则,限制可选的实体范围。
具体操作步骤
1. 进入City内容类型的字段配置
- 登录站点后台,打开2sxc的「内容类型管理」
- 找到「City」类型,点击「编辑」进入字段配置界面
- 定位到你用来关联景点的那个Entity类型字段,点击「编辑字段」
2. 设置基础过滤规则(推荐)
在字段的「数据」标签页中,找到「过滤」区域:
- 点击「添加过滤条件」
- 选择过滤字段为
EntityType - 操作符选择「等于」
- 值填写你的景点内容类型名称(注意要和你创建的「Attraction」完全一致,大小写敏感)
- 保存字段配置
这样设置后,打开City的内容编辑界面,点击Entity字段的选择器,就只会显示Attraction类型的实体了。
3. 自定义代码过滤(适合复杂场景)
如果你需要更灵活的过滤逻辑(比如只显示已发布的景点),可以用代码来控制数据源:
- 回到字段的「高级」标签页
- 在「数据源」下拉框中选择「自定义代码」
- 输入以下C#代码(如果用VB可以对应转换):
// 仅返回Attraction类型且已发布的实体 return AsDynamic(App.Data["Attraction"].Where(a => a.IsPublished)); - 保存配置即可
4. 验证效果
回到City的内容编辑页面,打开Entity字段的选择弹窗,确认只有Attraction实体被列出,其他类型的实体不会显示。
额外提示
- 如果需要叠加多个过滤条件(比如同时限制站点、分类),可以继续添加更多过滤规则
- 如果你之前安装的REST Tutorial App里有实体过滤的示例,也可以参考其中的数据源配置逻辑,原理是相通的
内容的提问来源于stack exchange,提问作者Andrew Birks
相关产品推荐
相关产品推荐

