日期:2014-05-20  浏览次数:20748 次

求助:关于LINQ TO SQL和LINQ TO OBJECT配合使用的效率问题
在做项目的时候遇到了一个问题
有两个结果集,一个是用LINQ TO SQL取出来的Q1,数据量大概有300条左右
还有一个结果集是用LINQ TO OBJECT从一个DATATABLE中取出来的Q2,数据量20条
然后想关联Q1 Q2取出最终结果
开始发现是无法直接关联的
于是本人将两个结果集全部AsEnumerable()之后发现功能可以实现了
但是速度非常慢
执行一次大约需要20秒左右
请问这是怎么回事,如何可以优化一下

补充一下,Q1 Q2两个查询是没有问题的,很快都能取出结果
就是最后关联的时候非常慢
叩谢……

------解决方案--------------------
DataTable.AsEnumerable()即可

LINQ2SQL 注意不要使用.ToList() .Count()等非延迟查询操作符
------解决方案--------------------
问题 出在你关联的上面了。。。
打个比方 简单的sql查询 你关联的多了 一样会很慢,你可以 拿出来linq生成的sql试试 就知道了.
建议 将其关联 转换为 纯内存操作有效数据集.