1

这是我的 caml 查询代码,用于获取 SharePoint 2016 本地 (CSOM) 中的查找字段的值。

<View>
                                <Query>
                                    <Where>
                                        <Eq>
                                            <FieldRef Name='myLookupField' LookupId='TRUE'/>
                                            <Value Type='Lookup'>18456</Value>
                                        </Eq>
                                    </Where>
                                </Query>
                            </View>

尝试删除此部分“LookupId='TRUE'”,但仍然出现此异常:“无法完成此操作。请重试。” 我在 U2U caml 查询生成器中运行这个 caml 查询,但它可以工作。

4

1 回答 1

2

在 CSOM 中测试 CAML,如下所示,它正在工作:

        using (ClientContext ctx=new ClientContext("http://sp/sites/dev/"))
        {
            List list = ctx.Web.Lists.GetByTitle("MyList22");
            CamlQuery caml = new CamlQuery();
            caml.ViewXml = "<View><Query><Where><Eq><FieldRef Name='myLookupField' LookupId='TRUE'/><Value Type='Lookup'>1</Value></Eq></Where></Query></View>";
            ListItemCollection items = list.GetItems(caml);
            ctx.Load(items);
            ctx.ExecuteQuery();
            foreach (ListItem item in items)
            {
                FieldLookupValue value = item["myLookupField"] as FieldLookupValue;
                Console.WriteLine("LookupId: "+ value.LookupId);
                Console.WriteLine("LookupValue: "+ value.LookupValue);

            }
        }

这是测试列表数据: 在此处输入图像描述

在此处输入图像描述

于 2020-01-21T02:33:25.303 回答