是否可以通过OData流式传输实体?

Chr*_*ski 6 .net iqueryable odata

我是OData的新手,所以请耐心等待.

假设我正在使用带有OData的IQueryable <>,并且服务器生成的记录数量很大(比如10000),是否可以在客户端继续到达时开始处理实体(在整个HTTP流之前有已收到)?

我想到的概念类似于使用LINQ和SqlDataReader(详细信息),其中数据是从SQL(通过连接到SqlDataReader的基础服务器端游标)获取的,只有在LINQ2SQL提供程序枚举记录时才会这样.

HTTP确实允许流式传输.OData IQueryable <>可以利用这种支持吗?如果可以实现端到端流,则将在服务器上枚举数据并且一次一个记录地流(到序列化)到HTTP流中.当流被客户端接收并反序列化时,可以枚举实体并一次一个地到达.

这是一厢情愿的想法吗?

lon*_*ero 2

是否可以使用 WCF 数据服务流式传输内容?是的。为此,您必须实现流提供程序,该提供程序允许二进制大对象 (BLOB) 数据的流式传输,例如照片、视频和文档(无实体

如果从 IIS 流式传输一个大结果集,则它是 feed/xml/json,并且在响应完成之前它才有效。但是,您可以使用 $skip 和 $top 参数执行多个并行请求,以便将该结果集拆分为多个较小的请求,并在它们到达时加入它们。

更新:另一种选择可以通过创建自己的基础设施来通过 wcf ds 进行流式传输,就像这个人http://blogs.msdn.com/b/tom_laird-mcconnell/archive/2010/01/18/using-ado-net-wcf -数据服务用于流式无限事件结果集.aspx