如何覆盖OData筛选器查询验证程序以允许模型中未定义的属性
我正在使用Asp.NET OData v7.0(Microsoft.AspNet.OData)。我想自定义过滤器验证器,以允许模型中未定义的属性 例如,我的模型定义如下:如何覆盖OData筛选器查询验证程序以允许模型中未定义的属性,odata,Odata,我正在使用Asp.NET OData v7.0(Microsoft.AspNet.OData)。我想自定义过滤器验证器,以允许模型中未定义的属性 例如,我的模型定义如下: public Product { public string Name {get;set;} } 如果我在未定义的属性上进行筛选,则属性如下: $filter=标题等式“abc” 我将得到以下错误: Could not find a property named 'Title' on type 'xx...Model
public Product
{
public string Name {get;set;}
}
如果我在未定义的属性上进行筛选,则属性如下:
$filter=标题等式“abc”
我将得到以下错误:
Could not find a property named 'Title' on type 'xx...Models.Product
是否可以覆盖FilterQueryValidator以忽略此错误
我试图覆盖ValidateSingleValuePropertyAccessNode:
public class MyFilterValidator : FilterQueryValidator
{
public override void Validate(...)
{
base.Validate(...);
}
public override void ValidateSingleValuePropertyAccessNode(...)
{
// my customized code
}
}
在我的控制器中:
queryOptions.Filter.Validator = new MyFilterValidator(new DefaultQuerySettings());
queryOptions.Filter.Validate(new ODataValidationSettings());
但它不起作用。调试时,我看到调用了Validate(…),但从未调用ValidateSingleValuePropertyAccessNode(…)。我还覆盖了所有validatexxx方法,但没有一个方法被调用。您能克服这个问题吗?