我正在使用Microsoft的OData Api v3并试图成功获得以下查询:
Posts?$filter=(ReferredFrom/any(it: (it/ReferenceType/Description/Name eq 'Part')) and RefersTo/all(it: (it/ReferenceType/Description/Name ne 'Child')))
所以它基本上由两个与all
链接的any
/ and
个查询文件管理器组成:
ReferredFrom/any(it: (it/ReferenceType/Description/Name eq 'Part'))
RefersTo/all(it: (it/ReferenceType/Description/Name ne 'Child')))
虽然两个查询部分都可以自行运行,但如上所示,当我将它们组合起来时会出现错误。不幸的是,我得到了ArgumentNullException
。你们有谁知道问题出在哪里?类似的查询与OData演示服务一起使用。
问候,bloxx
这是确切的答案:
{
"odata.error":{
"code":"","message":{
"lang":"en-US","value":"Fehler"
},"innererror":{
"message":"Der Wert darf nicht NULL sein.\r\nParametername: parameter","type":"System.ArgumentNullException","stacktrace":" bei System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext()\r\n--- Ende der Stapel\u00fcberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel\u00f6st wurde ---\r\n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n bei System.Web.Http.Tracing.Tracers.HttpControllerTracer.<ExecuteAsyncCore>d__5.MoveNext()\r\n--- Ende der Stapel\u00fcberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel\u00f6st wurde ---\r\n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n bei System.Web.Http.Tracing.ITraceWriterExtensions.<TraceBeginEndAsyncCore>d__21`1.MoveNext()\r\n--- Ende der Stapel\u00fcberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel\u00f6st wurde ---\r\n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n bei System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()"
}
}
}
答案 0 :(得分:0)
Posts?$filter=ReferredFrom/any(from: from/ReferenceType/Description/Name eq 'Part') and RefersTo/all(to: to/ReferenceType/Description/Name ne 'Child')
http://www.odata.org/2012/05/odata-v3-demo-services/
作为建议,永远不要做同样的变量,但要更好地对每个变量进行分类:
而不是它 - 从,到执行。在你的情况下。它更容易阅读