我一直在Silverlight应用程序生成各种图表。它需要一些数字处理以及从数据库中获取相当数量的数据。慢linq枚举
对于我的数据库通信,我创建了一个使用Linq2SQL的Web服务。为了克服我的Web服务爆炸的问题,我将数据分块,有时会有3个Web服务调用来完成这些。
谈到这个问题。当获得大量的数据时,枚举过程“ToList()”花费很长时间,这加起来比期望的加载时间长。根据SQL Profiler,我的查询的典型持续时间约为1500。对于1000条记录来说,ToList()调用最多可能需要4秒钟,这看起来极端。
我的主要问题是,有什么可以做的,以加快这一进程?或者,有没有更好的方法从数据库获取大量数据到Silverlight应用程序?
附加信息:
我的LINQ参考硬编码到一个局部类我的数据上下文。这是由于一个尴尬的存储过程,它的返回类型与dbml文件无法兼容。
我也创建了我设定的返回类型为我的对象基本对象,主要包含如快速的属性定义:
public Guid Id {get; set;}
的跟进问题是,定义一个LINQ存储过程调用时和返回类型,是否有任何有助于加速进程的属性,或者我很好地将它链接到一个非常基本的对象?
当你说“枚举可能需要4秒”时,你究竟是什么意思?你有很多可能成为瓶颈的地方。为了理智,我建议你把它们完全分开,这样我们就知道发生了什么。 – 2009-09-22 19:47:03
对不起,如果我有点罗嗦。 我的意思是我调用存储过程后,我的ToList()调用可能需要几秒钟,这似乎有点多。 – 2009-09-22 19:52:30
好友,那个时候正在创建多少个对象?当你调用ToList()时,你创建了数十个对象还是数千个? – 2009-09-22 20:13:17