【发布时间】:2020-04-14 18:32:24
【问题描述】:
我需要在 .NET core 2.1 API 的服务器端修改$filter。我看过这些:
https://entityframework.net/knowledge-base/33660648/odata-v4-modify--filter-on-server-side
OData V4 modify $filter on server side
The best way to modify a WebAPI OData QueryOptions.Filter
(和其他几个)
他们都在做一些事情:
//Get the URL
var url = queryOptions.Request.RequestUri.AbsoluteUri;
//Then modify the URL
url = url.Replace("$filter=ID%20eq%201", "$filter=ID%20eq%202");
//Apply the URL
return queryOptions.ApplyTo(queryable);
问题是它出现在 .NET core 中没有RequestUri。我可以通过多种不同的方式获取查询:
var query = originalRequest.QueryString.Value;
//or a foreach loop
var filter = Request.Query;
foreach (var x in filter)
//...
但是QueryString.Value Request.Query 都给我一个错误“值没有设置器”
同样ApplyTo 方法不在 .NET Core 中。
在 .NET Core 中执行此操作的正确方法是什么?有没有我遗漏的包裹?
【问题讨论】: