CAML查询无法正常运行,无法获取Lookup字段关联列表的FirstName值
CAML跨列表查询关联字段取值错误修正方案
你当前的查询存在两个核心配置错误,修正后即可正常读取关联列表的FirstName字段值:
- ProjectedFields字段命名冲突:你当前在
<ProjectedFields>中定义的投影字段Name属性值为Participant,和主列表WorkshopResults上已有的Lookup字段Participant重名,会导致字段映射冲突,必须修改为唯一的自定义别名。 - ViewFields字段引用不匹配:
<ViewFields>中直接引用关联列表的字段名FirstName是无效的,必须引用你在ProjectedFields中自定义的投影字段别名,才能读取到关联列表的对应值。
以下是修正后的CAML代码:
<View> <ViewFields> <FieldRef Name="Title" /> <FieldRef Name="Id" /> <!-- 引用投影后的自定义字段别名 --> <FieldRef Name="ParticipantFirstName" /> </ViewFields> <Joins> <Join Type="LEFT" ListAlias="Participant"> <Eq> <FieldRef Name="Participant" RefType="ID" /> <FieldRef Name="ID" List="Participant" /> </Eq> </Join> </Joins> <ProjectedFields> <!-- Name属性改为唯一的自定义别名,不可与现有字段重名 --> <Field ShowField="FirstName" Type="Lookup" Name="ParticipantFirstName" List="Participant" /> </ProjectedFields> <Query> <Where /> </Query> </View>
额外注意:需确认主列表WorkshopResults中Lookup字段的内部名称确实为Participant,若字段创建时显示名存在特殊字符/空格,内部名可能和显示名不一致,需要替换为对应内部名才能生效。
内容的提问来源于stack exchange,提问作者Joao Livio
相关产品推荐
相关产品推荐

