如何使用QueryNodeVisitor解析用于布尔实体类型的odata $ filter

时间:2019-01-02 23:25:50

标签: c# parsing odata

我想知道我们如何使用QueryNodeVisitor解析布尔数据类型的odata FilterClause。例如,

/ api / items?$ filter = value eq true

/ api / items?$ filter = value

从我测试的结果来看,以上两项均对odata有效。虽然通用QueryNodeVisitor似乎仅在第一种情况下起作用。有什么建议也可以使第二个工作吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

QueryNodeVisitor<T>是一个泛型类,所有方法都定义为抛出NotImplementedException

请您分享更多有关“通用QueryNodeVisitor似乎仅在第一种情况下有效”的信息吗?

此外,我认为您可以创建自己的访客,类似于:

public class BooleanVisitor : QueryNodeVisitor<bool>
{
    public override bool Visit(SingleValuePropertyAccessNode propertyNode)
    {
        if (propertyNode == null)
        {
            return false;
        }

        return propertyNode.TypeReference.IsBoolean();
}