c# - 通过 Web API 中的属性限制 OData $filter

标签 c# asp.net-web-api odata

我只想允许在 OData 查询 $filter 选项中使用某些属性。

我看到 EnableQueryAttribute 有一个 AllowedOrderByProperties 参数,但我没有为 $filter 找到另一个参数。我刚刚错过了吗?如果没有,实现它需要什么?

最佳答案

您可以尝试以下方法:

一旦有了构建器,就可以列出 entitySet 的属性,然后可以提及该字段是否可过滤。

var entityTypeConfig = builder.EntitySet<SomeType>("SomeType").EntityType;
entityTypeConfig.Property(x => x.SomeField);
entityTypeConfig.Property(x => x.SomeField2).IsNotFilterable().IsNonFilterable();
// not sure what is the difference between them

并在 Controller 操作(例如 httpGet)中添加

options.Filter.Validate(allowedOptions);

如果某个字段不可过滤,则会抛出异常。

关于c# - 通过 Web API 中的属性限制 OData $filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52040901/

相关文章:

asp.net-mvc - 从 MVC POST 操作方法调用 Web API 并接收结果

c# - 在 WebAPI C# 中请求反序列化期间捕获异常

java - 将带偏移量的 Json 日期转换为 java 日期

c# - 在云应用程序中使用 session 是否安全

c# - 在 ASP.NET 4.5 webforms 应用程序中设置 OAuth redirect_uri 的位置

asp.net-core - IConfiguration 不从 appsettings.json 而是从 Azure Key Vault 检索值

android - 关于阅读出版物的移动应用程序的建议

asp.net-web-api - 如何在 ODataModelBuilder 中定义多个模型类

c# - 在 IDisposable 对象数组中使用 Dispose() 或不使用 Dispose() 元素?

c# - .Net C# : Read attachment from HttpWebResponse