我已经尝试了 2 种形式的调用,这个
products = DocumentSession.Query<Product>()
.Statistics(out stats)
.Where(p => p.INFO2.StartsWith(term1))
.Where(p => p.INFO2.StartsWith(term2))
.Where(p => p.INFO2.StartsWith(term3))
.OrderByField(columnToSortBy, columnToSortByAsc)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToList()
;
这样
products = DocumentSession.Query<Product>()
.Statistics(out stats)
.Where(p => p.INFO2.StartsWith(term1) & p.INFO2.StartsWith(term2) & p.INFO2.StartsWith(term3))
.OrderByField(columnToSortBy, columnToSortByAsc)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToList()
;
第一个返回的记录更符合我的预期,而第二个似乎返回所有 Product 类型的文档。从 LINQ 表达式的角度来看,两者之间有什么区别,我是否忽略了任何可能否定我想要完成的事情的事情,即 3 项查询并且每个项都被“与”在一起。
编辑:每个 Russ 的修改代码。
string t1 = terms[0];
string t2 = terms[1];
string t3 = terms[2];
products = DocumentSession.Query<Product>()
.Statistics(out stats)
.Where(p => p.INFO2.StartsWith(t1) && p.INFO2.StartsWith(t2) && p.INFO2.StartsWith(t3))
.OrderByField(columnToSortBy, columnToSortByAsc)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToList()
;
编辑 2:这是您将脸朝下砸在键盘或任何其他实体物体上的地方...必须使用标准 C# And and Or 回到这里的基本内容
谢谢你,斯蒂芬