CAML 查询的错误结果

Wrong results with CAML Query

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

但是当我意识到他 return 只搜索带重音的项目而忽略不带重音的项目时,我希望他 return 将两个结果放在一起。

他在三个领域寻找:"Title"、"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();

谁能帮帮我?

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

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

我还认为,如果您在 post 中提到您使用 Camlex 库来创建动态查询,那会更清楚。