为什么Breeze jquery Where/Take/Order在没有nodb的BreezeJs中不起作用,

为什么Breeze jquery Where/Take/Order在没有nodb的BreezeJs中不起作用,,breeze,Breeze,这是我的密码: 服务器Web API ======================================= public class OwnerDto { public int OwnerId { set; get; } public string OwnerName { set; get; } } [HttpGet] public IEnumerable GetOwner()

这是我的密码: 服务器Web API

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

public class OwnerDto { public int OwnerId { set; get; } public string OwnerName { set; get; } } [HttpGet] public IEnumerable GetOwner() { IEnumerable result = new[] { new OwnerDto { OwnerId = 1, OwnerName = "Test1" }, new OwnerDto { OwnerId = 2, OwnerName = "Test2" }, new OwnerDto { OwnerId = 3, OwnerName = "Test3" }, new OwnerDto { OwnerId = 4, OwnerName = "Test4" } }; return result; } 公共类所有者{ public int OwnerId{set;get;} 公共字符串所有者名称{set;get;} } [HttpGet] 公共IEnumerable GetOwner() { IEnumerable结果=新[]{ 新所有者到{OwnerId=1,OwnerName=“Test1”}, 新所有者到{OwnerId=2,OwnerName=“Test2”}, 新所有者到{OwnerId=3,OwnerName=“Test3”}, 新所有者到{OwnerId=4,OwnerName=“Test4”} }; 返回结果; } js代码 var dataService=new breeze.dataService({ serviceName:“/api/owner/”, hasServerMetadata:false, }); var manager=new breeze.EntityManager({dataService:dataService}); var store=manager.metadataStore; //metadataStore.namingConvention=namingConv; store.addEntityType({ 短名:“所有者”, 命名空间:“Test.Owner”, 数据属性:{ OwnerId:{dataType:breeze.dataType.Int32,isPartOfKey:true}, 所有者名称:{dataType:breeze.dataType.String} } }); var op=breeze.FilterQueryOp; var query=new breeze.EntityQuery() .来自(“GetOwner”) 其中(“所有者ID”,op.Equals,2); manager.executeQuery.then(函数(数据){ ko.applyBindings(数据,$(“#搜索结果”)[0]); }).失败(功能(e){ 警报(e); }); Html代码 p-data bind=“可见:!results”正在获取数据。。 ul-data bind=“foreach:results,visible:results”style=“display:none” span-data bind=“text:OwnerName” span-data bind=“text:OwnerId” ========================================== 问题是所有数据都可以显示,但过滤器(where/take/order…)不工作。
任何想法,非常感谢

我认为原因是查询中的方法返回
IEnumerable
。这些动词(其中/take/order)仅适用于返回
IQueryable
的服务端点。试试这个:

[HttpGet] public IQueryable GetOwner() { IEnumerable result = new[] { new OwnerDto { OwnerId = 1, OwnerName = "Test1" }, new OwnerDto { OwnerId = 2, OwnerName = "Test2" }, new OwnerDto { OwnerId = 3, OwnerName = "Test3" }, new OwnerDto { OwnerId = 4, OwnerName = "Test4" } }; return result.AsQueryable(); } [HttpGet] 公共IQueryable GetOwner() { IEnumerable结果=新[]{ 新所有者到{OwnerId=1,OwnerName=“Test1”}, 新所有者到{OwnerId=2,OwnerName=“Test2”}, 新所有者到{OwnerId=3,OwnerName=“Test3”}, 新所有者到{OwnerId=4,OwnerName=“Test4”} }; 返回结果。AsQueryable(); } p- data-bind="visible: !results" Fetching data .. ul- data-bind="foreach: results, visible: results" style="display:none" span- data-bind="text: OwnerName" span- data-bind="text: OwnerId" [HttpGet] public IQueryable GetOwner() { IEnumerable result = new[] { new OwnerDto { OwnerId = 1, OwnerName = "Test1" }, new OwnerDto { OwnerId = 2, OwnerName = "Test2" }, new OwnerDto { OwnerId = 3, OwnerName = "Test3" }, new OwnerDto { OwnerId = 4, OwnerName = "Test4" } }; return result.AsQueryable(); }