我们一直在使用以下堆栈开发新的应用程序:
SQL Server 2008 R2 - >实体框架4.2 - > WCF数据服务 - > WCF数据服务客户端库
这都是.NET 4.0
现在,WCF数据服务客户端库对于少量数据和简单的模式/对象图非常方便,但它对于更复杂的模型来说是一个真正的好处。特别是,我们发现DataServiceContext.Links集合可以扩展为O(n ^ 2):你加载的对象越多,你的图表嵌套越多,得到的就越慢,直到需要更长的时间。将数据加载到上下文中,而不是从线上读取数据。
例如,我们有一个拥有2000个成员的集合,每个成员有4个导航属性。在不扩展任何导航属性的情况下拉动整个集合大约需要1秒钟。扩展所有4个导航属性需要5秒。我们测量了堆栈中各个点的性能,并且大部分额外时间花在客户端上,整理数据。
我们采用了各种技术来处理大数据集:
有没有人知道其他任何技术?在加载相关对象时,是否存在可能导致不必要开销的设置?
有时看起来我们正在编写我们自己的自定义上下文的一半,并且在它变得更精细之前我想要一个完整性检查。
[是的,我意识到WCF数据服务可能是错误的工具。唉,我们已经走了这条路]