0

这是我的代码:Server-Web API

========================================

    公共类 OwnerDto {
            公共 int OwnerId { 设置;得到; }
            公共字符串 OwnerName { 设置;得到; }
        }
     [HttpGet]
            公共 IEnumerable GetOwner()
            {

                IEnumerable 结果 = new[] {
                    新的 OwnerDto { OwnerId = 1, OwnerName = "Test1" },
                    新 OwnerDto { OwnerId = 2, OwnerName = "Test2" },
                    新的 OwnerDto { OwnerId = 3, OwnerName = "Test3" },
                    新的 OwnerDto { OwnerId = 4, OwnerName = "Test4" }
                };

                返回结果;
            }

js代码


    var dataService = 新的微风.DataService({
                serviceName: "/api/owner/",
                hasServer元数据:假,
            });

            var manager = new brief.EntityManager({ dataService: dataService });

            var store = manager.metadataStore;

            //metadataStore.namingConvention = NamingConv;
            store.addEntityType({
                shortName: "所有者",
                命名空间:“Test.Owner”,
                数据属性:{
                    OwnerId:{数据类型:微风.DataType.Int32,isPartOfKey:真},
                    所有者名称:{ 数据类型:微风.DataType.String}
                }
            });


            var op = 微风.FilterQueryOp;
            var 查询 = 新微风.EntityQuery()
                .from("GetOwner")
                .where("ownerId",op.Equals,2);

            manager.executeQuery(query).then(function (data) {
                ko.applyBindings(data, $("#SearchResult")[0]);
            }).fail(函数 (e) {
                警报(e);
            });

html代码

    p- data-bind="visible: !results" 获取数据..
    ul-data-bind="foreach: 结果,可见:结果" style="display:none"

    跨度数据绑定 =“文本:所有者名称”
    span-data-bind="text: OwnerId"

=========================================== 问题是所有数据都可以显示但是过滤器(where/take/order...)不起作用。任何想法,非常感谢!

4

1 回答 1

0

我相信原因是您查询的方法返回IEnumerable。这些动词(where/take/order)仅适用于返回的服务端点IQueryable<T>。尝试这个:

[HttpGet]
公共 IQueryable GetOwner()
            {

                IEnumerable 结果 = new[] {
                    新的 OwnerDto { OwnerId = 1, OwnerName = "Test1" },
                    新 OwnerDto { OwnerId = 2, OwnerName = "Test2" },
                    新的 OwnerDto { OwnerId = 3, OwnerName = "Test3" },
                    新的 OwnerDto { OwnerId = 4, OwnerName = "Test4" }
                };

                返回结果.AsQueryable();
            }
于 2013-06-08T07:56:43.543 回答