CAML查询错误的结果

时间:2015-07-13 21:32:45

标签: c# sharepoint expression caml

我在生成一个表达式时遇到问题,该表达式将检查它是否包含带有重音符号的给定文本。

但是当我意识到搜索时他只返回带有重音的项目并忽略没有重音的项目,我希望他能将两个结果一起返回。

他寻求三个领域:“标题”,“SINPCSobreProduto”和“SINPCCaracteristicas”

我使用库Camlex

代码:

var searchConditions = new List<Expression<Func<ListItem, bool>>>();
var searches= new[] {"Código", "Codigo"};
foreach (string search in searches)
{
  searchConditions.Add(x => ((string)x["Title"]).Contains(search));
  searchConditions.Add(x => ((string)x["SINPCSobreProduto"]).Contains(search));
  searchConditions.Add(x => ((string)x["SINPCCaracteristicas"]).Contains(search));
}
var searchExpr = ExpressionsHelper.CombineOr(searchConditions);
expressions.Add(searchExpr);

//here he is returning 196 items and not the 201 items because it is ignoring the 5 items
//that are without the accent.
var camlQuery = Camlex.Query().WhereAll(expressions).ToCamlQuery();

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

看起来你应该在最后一次调用中使用WhereAny()而不是WhereAll():

var camlQuery = Camlex.Query().WhereAny(expressions).ToCamlQuery();

我认为,如果你在帖子中提到使用Camlex库来创建动态查询,那就更清楚了。