针对索引的RavenDB LINQ查询失败

针对索引的RavenDB LINQ查询失败,linq,indexing,ravendb,Linq,Indexing,Ravendb,尝试对RavenDB运行特定查询时,我遇到以下错误: 无法从类型为:ArrayIndex的表达式中提取值 以下是生成错误的查询: people = from p in RavenSession.Query<DBObjects.Person, People_ByNameAndTrashedSortByFirstNameAndLastName>() orderby p.FirstName, p.LastName select p; ... //buil

尝试对RavenDB运行特定查询时,我遇到以下错误:

无法从类型为:ArrayIndex的表达式中提取值

以下是生成错误的查询:

people = from p in RavenSession.Query<DBObjects.Person, People_ByNameAndTrashedSortByFirstNameAndLastName>()
         orderby p.FirstName, p.LastName
         select p;
...
//building LINQ query
...
people = from p in people
         where ((p.FirstName.StartsWith(SearchWords[0])) && (p.LastName.StartsWith(SearchWords[1])))
         select p;
...
//later
foreach(DBObject.Person person in people)  //triggers error listed above
{
}
我得到了同样的错误。


我还尝试使用动态索引而不是静态索引。我得到了同样的错误。

我想RavenDB LINQ驱动程序可能无法处理从查询中的数组中提取值的问题。尝试将已提取的值放在
SearchWords[0]
SearchWords[1]
的位置:

var pref1 = SearchWords[0];
var pref2 = SearchWords[1];
... where ( p.FirstName.StartsWith(pref1) && p.LastName.StartsWith(pref2) )

就这样。结果表明,它作为
|
而不是
&&
工作的原因是,我搜索的是整个输入文本,而不是数组中拆分出来的单词。谢谢啊!打同样的问题。又被RavenDB LINQ驱动程序不支持的东西绊倒了。非常感谢。
var pref1 = SearchWords[0];
var pref2 = SearchWords[1];
... where ( p.FirstName.StartsWith(pref1) && p.LastName.StartsWith(pref2) )