【发布时间】:2014-03-15 05:04:31
【问题描述】:
我正在使用 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()"
}
}
}
【问题讨论】:
-
不确定,但试试这个:Posts?$filter=ReferredFrom/any(from: from/ReferenceType/Description/Name eq 'Part') 和 RefersTo/all(to: to/ReferenceType/Description /命名 ne '孩子')
-
非常感谢,你解决了我的问题:)
标签: odata