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 库来创建动态查询,那会更清楚。
我在生成表达式时遇到问题,该表达式将检查它是否包含带有重音符号的给定文本。
但是当我意识到他 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 库来创建动态查询,那会更清楚。