如何基于OData提供程序开发JayData查询,并对列表{String}提供全部支持

时间:2013-12-04 14:54:38

标签: javascript asp.net-web-api odata jaydata datajs

考虑以下JayData实体:

           var Todo = $data.Entity.extend("Todo", {
                Id: { type: "int", key: true, computed: true },
                Task: { type: String, required: true, maxLength: 200 },
                DueDate: { type: Date },
                Completed: { type: Boolean },
                Person: { type: "Person", required: true, inverseProperty: "Todos" }
            });

            var Person = $data.Entity.extend("Person", {
                Id: { type: "int", key: true, computed: true },
                Name: { type: String, required: true, maxLength: 200 },
                Todos: { type: $data.Array, elementType: Todo, inverseProperty: "Person" },
                OtherNames : { type : $data.Array, elementType: String }
            });

每个人都有很多 Todo 项目。

现在我可以加载至少有一个已完成的待办事项的人。 (在Windows Server 2008 R2上使用JayData 1.3.4&Web API& OData 5.6和IIS 7)。

看一下工作正常的样本:http://jsfiddle.net/ysmoradi/P59jz/5/

但是我想运行另一个与这个有点不同的查询。

我想在列出{String> OtherNames

中加载具有特殊名称的人

我的问题的OData查询示例正常工作:

People?$filter=OtherNames/any(name:name eq 'AAA' or name eq 'BBB');

如何以任何可能的方式在JayData中完成此OData查询?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用 some() JayData运算符表达OData 任何查询运算符。 可以在此处找到JayData的every()和some()运算符的文档 - Using some() and every() with JayData OData provider