RavenDB中按整数列表排序

RavenDB中按整数列表排序,ravendb,Ravendb,我正试图在RavenDB中检索文档,在这里我按int列表排序 Queryable = Queryable.OrderBy(dto => SearchIds.IndexOf(dto.PropertyId)); 上面的代码是我从中找到的解决方案 但是,当客户端需要将LINQ解析为RQL时,它会返回一个错误 System.InvalidOperationException: Cannot understand how to translate value(infrastructure.Data

我正试图在RavenDB中检索文档,在这里我按int列表排序

Queryable = Queryable.OrderBy(dto => SearchIds.IndexOf(dto.PropertyId));
上面的代码是我从中找到的解决方案

但是,当客户端需要将LINQ解析为RQL时,它会返回一个错误

System.InvalidOperationException: Cannot understand how to translate value(infrastructure.DataAccess.HolidayHome.Filtering.PropertyInformationFilteringService).SearchIds.IndexOf(dto.PropertyId)
   at Raven.Client.Documents.Linq.LinqPathProvider.GetPath(Expression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\LinqPathProvider.cs:line 114
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.GetMemberDirect(Expression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 554
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitOrderBy(LambdaExpression expression, Boolean descending) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 2263
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitQueryableMethodCall(MethodCallExpression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 1914
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitMethodCall(MethodCallExpression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 1204
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitExpression(Expression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 202
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitQueryableMethodCall(MethodCallExpression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 1802
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitMethodCall(MethodCallExpression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 1204
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitExpression(Expression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 202
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitQueryableMethodCall(MethodCallExpression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 1808
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitMethodCall(MethodCallExpression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 1204
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitExpression(Expression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 202
   at Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.GetAsyncDocumentQueryFor(Expression expression, Action`1 customization) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor.cs:line 3518
   at Raven.Client.Documents.Linq.RavenQueryProvider`1.ToAsyncDocumentQuery[TResult](Expression expression) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProvider.cs:line 258
   at Raven.Client.Documents.LinqExtensions.ToListAsync[T](IQueryable`1 source, CancellationToken token) in C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\LinqExtensions.cs:line 313
   at infrastructure.DataAccess.HolidayHome.Filtering.PropertyInformationFilteringService.FilterBySearchCriteria() in C:\Users\Alex\git\search-service\infrastructure\DataAccess\HolidayHome\Filtering\PropertyInformationFilteringService.cs:line 31
   at infrastructure.DataAccess.HolidayHome.Commands.Property.PropertyInfoCommands.GetPropertyDtos(SearchResultCriteria searchCriteria, List`1 searchIds) in C:\Users\Alex\git\search-service\infrastructure\DataAccess\HolidayHome\Commands\Property\PropertyInfoCommands.cs:line 29
   at webapi.Controllers.v1.SearchController.RetrieveSearch(SearchResultCriteria searchResultCriteria) in C:\Users\Alex\git\search-service\web-api\Controllers\v1\SearchController.cs:line 265
   at webapi.Controllers.v1.SearchController.Get(SearchResultCriteria searchResultCriteria) in C:\Users\Alex\git\search-service\web-api\Controllers\v1\SearchController.cs:line 67
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
System.InvalidOperationException:无法理解如何转换值(infrastructure.DataAccess.HolidayHome.Filting.PropertyInformationFilteringService).SearchId.IndexOf(dto.PropertyId)
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\LinqPathProvider.GetPath(表达式)中的Raven.Client.Documents.Linq.LinqPathProvider.GetPath中:第114行
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq.RavenQueryProviderProcessor`1.GetMemberDirect(表达式表达式)中
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq.RavenQueryProviderProcessor`1.VisitOrderBy(LambdaExpression表达式,布尔降序)中
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor`1.VisitQueryableMethodCall(MethodCallExpression表达式)中的Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitQueryableMethodCall
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor`1.visitMethodCallExpression表达式)中的Raven.Client.Documents.Linq.ravenkeryProviderProcessor`1.visitMethodCallExpression(MethodCallExpression表达式):第1204行
在Raven.Client.Documents.Linq.ravenkeryProviderProcessor`1.VisitExpression(表达式表达式)中的C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor.cs:第202行
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProviderProcessor`1.VisitQueryableMethodCall(MethodCallExpression表达式)中的Raven.Client.Documents.Linq.RavenQueryProviderProcessor`1.VisitQueryableMethodCall
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor`1.visitMethodCallExpression表达式)中的Raven.Client.Documents.Linq.ravenkeryProviderProcessor`1.visitMethodCallExpression(MethodCallExpression表达式):第1204行
在Raven.Client.Documents.Linq.ravenkeryProviderProcessor`1.VisitExpression(表达式表达式)中的C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor.cs:第202行
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor`1.VisitQueryableMethodCall(MethodCallExpression表达式)中的Raven.Client.Documents.Linq.RavenkeryProviderProcessor`1
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor`1.visitMethodCallExpression表达式)中的Raven.Client.Documents.Linq.ravenkeryProviderProcessor`1.visitMethodCallExpression(MethodCallExpression表达式):第1204行
在Raven.Client.Documents.Linq.ravenkeryProviderProcessor`1.VisitExpression(表达式表达式)中的C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor.cs:第202行
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\ravenkeryProviderProcessor`1.GetAsyncDocumentQueryFor(表达式表达式,操作`1自定义)中的Raven.Client.Documents.Linq.RavenkeryProviderProcessor`1.GetAsyncDocumentQueryFor(自定义):第3518行
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\Linq\RavenQueryProvider.cs中的Raven.Client.Documents.Linq.RavenQueryProvider`1.toasynchDocumentQuery[TResult](表达式)中:第258行
在C:\Builds\RavenDB-Stable-5.0\50009\src\Raven.Client\Documents\LinqExtensions.tolistsync[T](IQueryable`1源,CancellationToken令牌)中
位于C:\Users\Alex\git\search service\infrastructure\DataAccess\HolidayHome\Filtering\PropertyInformationFilteringService.FilterBySearchCriteria()中的infrastructure.DataAccess.HolidayHome.Filtering.PropertyInformationFilteringService.FilterBySearchCriteria()
在C:\Users\Alex\git\search service\infrastructure\DataAccess\HolidayHome\Commands\Property\PropertyInFoCommand.GetPropertyTos(SearchResultCriteria searchCriteria,列出'1个SearchID)中的infrastructure.DataAccess.HolidayHome.Commands.Property.PropertyInFoCommand.cs:第29行
在C:\Users\Alex\git\search service\web api\Controllers\v1\SearchController.RetrieveSearch中的webapi.Controllers.v1.SearchController.RetrieveSearch(SearchResultCriteria SearchResultCriteria)中:第265行
在C:\Users\Alex\git\search service\web api\Controller\v1\SearchController.Get(SearchResultCriteria SearchResultCriteria)中的webapi.Controllers.v1.SearchController.Get(SearchResultCriteria SearchResultCriteria)中:第67行
位于Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper映射器、ObjectMethodExecutor执行器、对象控制器、对象[]参数)
在Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g|u等待| 12_0(ControllerActionInvoker invoker,ValueTask`1 actionResultValueTask)
在Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g_u等待| 10_0(ControllerActionInvoker invoker,Task lastTask,State next,Scope Scope,Object State,Boolean isCompleted)
位于Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed上下文)
位于Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(状态和下一步、范围和范围、对象和状态、布尔值和isCompleted)
在Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g_u等待| 13_0(ControllerActionInvoker invoker,Task lastTask,State next,Scope Scope,Object State,Boolean isCompleted)
在Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g_|19_0(ResourceInvoker invoker、Task lastTask、State next、Scope Scope、Object State、Boolean isCompleted)
在Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g|u记录| 17|u 1(ResourceInvoker invoker)
位于Microsoft.AspNetCore.Routing.EndpointMidd
using (var s = store.OpenSession())
{
    var list = new List<string> {"users/2-A", "users/3-A", "users/6-A"};
    var res = session.Load<User>(list);
}