我正在开发一个自托管的WCF数据服务(OData)。正如我一直在测试这一点,我注意到我正在使用的大多数客户端应用程序(Excel,浏览器等)超时请求在我的服务中提取特定查询。查询中有大约140k条记录。应用程序在长时间查询后崩溃。
目前,唯一的解决方法是进行客户端分页,但如果我可以简单地增加限制,那么我将非常感谢答案。
请注意,我的实体模型与数据库视图而不是实际表格映射,以防它与问题有关系。
干杯!
答案 0 :(得分:1)
您真的需要传输如此大量的数据吗?
我认为 OData不是数据复制协议。
OData的主要优势是可以查询并因此限制要传输的数据量。
在处理大量数据的应用程序中,常见的方法是首先呈现聚合然后优化查询(例如,取决于用户做出的连续选择)。
我开发的AdaptiveLINQ组件可以帮助您实现此类服务。这基于立方体的概念:维度和度量被定义为C#表达式。
例如,可以想象一个服务来查看产品目录(包含大量数据),如下所示:
产品类别列表以及每种产品类别的可用产品数量:
http://.../catalogService?$select=Category,ItemQuantity
类别中的可用颜色列表"衬衫":
http://.../catalogService?$select=Color,ItemQuantity&$filter=Category eq shirt
"绿色衬衫列表":
http://.../catalogService?$select=ProductLabel,ProductID&$filter=Category eq shirt and Color eq green