myk*_*iuk 5 c# asp.net odata asp.net-web-api
有没有办法在 ASP.NET Web API 中从ODataValidationSettings全局设置属性?
我想为我的所有控制器更改MaxNodeCount并寻找一种在全局 OData 配置期间执行此操作的方法:
public static void Register(HttpConfiguration config)
{
var builder = new ODataConventionModelBuilder();
config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
config
.Select()
.Expand()
.Filter()
.OrderBy()
.MaxTop(null)
.Count()
// Looking for something like this:
.MaxNodeCount(20)
// Or like this:
.SetDefaultODataValidationSettings(new ODataValidationSettings {MaxNodeCount = 20});
}
Run Code Online (Sandbox Code Playgroud)
以下是如何使用ASP.NET Core OData 8.x实现此目的。
创建一个自定义ODataQueryValidator类来实现您希望应用的验证设置
public class SalesforceODataQueryValidator : ODataQueryValidator
{
public override void Validate(ODataQueryOptions options, ODataValidationSettings validationSettings)
{
validationSettings.MaxNodeCount = 300; // salesforce screens can exceed the default of 100 nodes per query
base.Validate(options, validationSettings);
}
}
Run Code Online (Sandbox Code Playgroud)
IODataQueryValidator设置 OData 时将此类注册为 的实现
builder.Services.AddOData(opt => {
opt.EnableQueryFeatures()
.AddRouteComponents("odata", edmModel,
odataServices => {
odataServices.AddSingleton<IODataQueryValidator, SalesforceODataQueryValidator>();
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1284 次 |
| 最近记录: |