.net Core 2.0 OData - EnableQuery属性不允许操作

问题描述 投票:1回答:1

我想在一个简单的项目中使用Microsoft.AspNetCore.OData,v7.0.0.0-beta1。我无法过滤,选择,并使用顶部或跳过。

覆盖EnableQueryAttribute的ValidateQuery,我可以成功执行这些类型的操作,所以我相信库是错误的。我找不到报告问题的正确渠道,有人可以帮忙吗?

重现的示例代码可在此处获得:https://github.com/norcino/AspNetCoreSamples/tree/master/SampleODataApp

asp.net-core odata
1个回答
2
投票

该问题的解决方案是MVC路由构建器的实际初始化。与.net框架版本一样,可以指定允许OData查询的操作。在下面的示例中,我将所有内容列入白名单,但您可以通过QueryOptionSetting的实例进行更精细的调整。

        app.UseMvc(routeBuilder =>
        {
            routeBuilder
                .Select()
                .Expand()
                .Filter()
                .OrderBy(QueryOptionSetting.Allowed)
                .MaxTop(2000)
                .Count();
            routeBuilder.EnableDependencyInjection();
        });

请注意,属性[HttpGet, EnableQuery(AllowedOrderByProperties = "Id")]将有效地强制执行属性中指定的唯一Id属性,但首先需要从配置中启用all。

© www.soinside.com 2019 - 2024. All rights reserved.