Breeze 如何设置IQueryable的最大行数

Breeze 如何设置IQueryable的最大行数,breeze,Breeze,我在Breeze文档中遗漏了两个主题:安全性和如何对返回的数据设置限制 我不希望有人删除数据库中的所有内容,也不希望返回所有内容 我应该用OData吗?有了Odata,我可以设置我想要的限制。安全性是一个庞大而杂乱无章的话题,从来没有足够的话可说。我希望能切磋一下 至于限制max记录,我将使用[Queryable]属性的PageSize选项。[BreezeQueryable]属性继承了此选项,因此您可以像这样编写Web API控制器方法或支持存储库方法: [HttpGet] [BreezeQue

我在Breeze文档中遗漏了两个主题:安全性和如何对返回的数据设置限制

我不希望有人删除数据库中的所有内容,也不希望返回所有内容

我应该用OData吗?有了Odata,我可以设置我想要的限制。

安全性是一个庞大而杂乱无章的话题,从来没有足够的话可说。我希望能切磋一下

至于限制max记录,我将使用
[Queryable]
属性的
PageSize
选项。
[BreezeQueryable]
属性继承了此选项,因此您可以像这样编写Web API控制器方法或支持存储库方法:

[HttpGet] [BreezeQueryable(PageSize=100)] // returns a maximum of 100 orders public IQueryable Orders() { return ContextProvider.Context.Orders; } [HttpGet] [BreezeQueryable(PageSize=100)]//最多返回100个订单 可供查询的公共订单(){ 返回ContextProvider.Context.Orders; } 您还可以通过向方法内的查询添加top来限制结果

[HttpGet] public IQueryable Orders() { return ContextProvider.Context.Orders.take(100); } [HttpGet] 可供查询的公共订单(){ 返回ContextProvider.Context.Orders.take(100); }
但是,某些查询条件可能无法通过。先试试。

我可以看到odata和breeze之间有一些重叠,我很难决定使用EFContextProvider还是EntitySetController。我希望能够将我的api用于任何类型的客户端我想你的意思是Breeze.NET对标准Web api控制器的增强与ASP.NET Web api的OData控制器EntitySetController的增强之间存在重叠。两者都是服务器端的Web API产品。Breeze本身纯粹是客户端的。我再怎么强调这一差异也不为过。话虽如此,我不知道你是怎么选择的。就我个人而言,我觉得使用标准的WebAPI控制器更容易控制,更广泛的客户端更容易访问这些控制器。使用EntitySetController,您几乎只限于OData客户端。国际海事组织。