针对索引的RavenDB LINQ查询失败
尝试对RavenDB运行特定查询时,我遇到以下错误:针对索引的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
无法从类型为: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) )