Sharepoint 如何编写SPQuery以根据LinkFieldValue筛选项目?

Sharepoint 如何编写SPQuery以根据LinkFieldValue筛选项目?,sharepoint,spquery,linkfieldvalue,Sharepoint,Spquery,Linkfieldvalue,我需要根据字段值从SharePoint列表中选择一个值。字段的类型为LinkFieldValue。我应该如何编写CAML查询 当我选择带有空查询的项目时,我将按预期接收列表中的所有项目 当我向查询添加约束时,它返回一个空结果。我已尝试按如下方式构造查询: string.Format("<Where><Eq><FieldRef Name=\"PollInstancePoll\" /><Value " +"Type=\"Text\">{0}</V

我需要根据字段值从SharePoint列表中选择一个值。字段的类型为LinkFieldValue。我应该如何编写CAML查询

当我选择带有空查询的项目时,我将按预期接收列表中的所有项目

当我向查询添加约束时,它返回一个空结果。我已尝试按如下方式构造查询:

string.Format("<Where><Eq><FieldRef Name=\"PollInstancePoll\" /><Value "
+"Type=\"Text\">{0}</Value></Eq></Where>",
new LinkFieldValue { NavigateUrl = "/az/Lists/Polls/DispForm.aspx?ID=1",
Text = "example poll" });
string.Format({0}),
新LinkFieldValue{NavigateUrl=“/az/Lists/Polls/DispForm.aspx?ID=1”,
Text=“示例轮询”});
这将生成以下查询文本:

<Where><Eq><FieldRef Name="PollInstancePoll" />
<Value Type="Text"><a href="/az/Lists/Polls/DispForm.aspx?ID=1">example poll</a></Value>
</Eq></Where>

我已通过以下查询解决了问题:

new SPQuery
{
    Query =
        CAML.Where(
            CAML.And(
                CAML.Contains(
                    CAML.FieldRef("PollInstancePoll"),
                    CAML.Value(pollPath)),
                CAML.Contains(
                    CAML.FieldRef("PollInstancePage"),
                    CAML.Value(pagePath))))
};
本质上,我只检查链接字段的URL部分,并提供比较值,如
Type=“Text”
。请务必记住,SharePoint在数据库中存储的值始终是服务器相对URL