You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kentico Cloud:如何通过SDK获取关联内容项的反向引用?

当然可行!这是你需要的实现方案

你的需求完全可以通过Kentico Cloud的内容交付API和官方SDK实现,不需要先拉取所有医生再本地过滤——服务器端就能帮你完成反向关联查询,直接拿到专科对应的医生列表,效率拉满。

核心逻辑

你的医生档案内容类型里有一个Linked Item字段(假设API ID是doctor_specialty)指向专科类型,专科本身不会存储反向关联的医生,但Kentico Cloud允许你通过反向过滤查询,直接找出所有引用了目标专科的医生档案项,而且可以和专科数据的获取整合起来。

具体操作步骤(以.NET SDK为例,其他语言SDK逻辑完全一致)

  • 先获取目标专科的内容项,拿到它的系统ID:
    var specialty = await client.GetContentItemAsync<DoctorsSpecialty>("family_medicine_content_item_id");
    
  • 接着用SDK的过滤条件,查询所有doctor_specialty字段关联了该专科的医生:
    var doctorsInSpecialty = await client.GetItemsAsync<DoctorsProfile>(
        new EqualsFilter("elements.doctor_specialty", specialty.System.Id),
        new LinkedItemsDepthParameter(1) // 如果需要包含医生的其他关联内容,可调整深度值
    );
    
  • 如果你想在单个API请求里同时获取专科和对应的医生,可以用ContentTypeFilter同时拉取两种类型,再结合过滤:
    var combinedResponse = await client.GetItemsAsync(
        new ContentTypeFilter("doctors_profile", "doctors_specialty"),
        new EqualsFilter("elements.doctor_specialty", "family_medicine_content_item_id"),
        new IncludeTotalCountParameter()
    );
    // 从响应中分别提取专科和医生数据
    var targetSpecialty = combinedResponse.Items.OfType<DoctorsSpecialty>().First();
    var associatedDoctors = combinedResponse.Items.OfType<DoctorsProfile>().ToList();
    

为什么这比本地过滤高效?

  • 过滤逻辑在Kentico Cloud服务器端执行,返回的只有你需要的医生数据,大幅减少了网络传输的数据量。
  • 避免了本地处理大量无关数据的开销,医生数量越多,效率提升越明显。

注意事项

  • 确保使用的SDK是较新版本,旧版本可能对反向过滤的支持不完善。
  • 要使用字段的API ID(不是显示名称),而且区分大小写,必须和Kentico Cloud后台配置的完全一致。

内容的提问来源于stack exchange,提问作者Simply007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:52:02