我正在尝试对 Sharepoint 列表执行两次搜索。在第一遍中,我使用 KeywordQuery 来搜索所有项目的索引。在第二遍中,我通过构建一个 select 语句来应用用户选择的列值过滤器。
ResultTableCollection rtc = kwqry.Execute();
ResultTable rt = rtc[ResultType.RelevantResults];
dt = new DataTable();
//Load Data Table
dt.Load(rt, LoadOption.OverwriteChanges);
DataRow[] rows = dt.Select("ColumnName1 = 'foo' AND ColumnName2 = 'bar'");
其中列可以是 Sharepoint 列表中的多值查找列。第一遍工作正常,并在 DataTable 中返回正确数量的匹配项。但是,当我尝试应用 Select 语句时,出现以下错误:Cannot perform '=' operation on System.String[] and System.String
. 将列转换为字符串而不是字符串数组会导致相同的错误,就像使用 IN 运算符一样。
我是否错误地构建了我的选择语句?如何在我的 DataTable 上运行我的第二次通过过滤器?