2012-03-31 83 views
1

当LINQ到SQL速度是这样的:越来越表计数

Dim mydata = (From c In dc.Table Select New With {c.ID}).Count 

任何速度比此:

Dim mydata = (From c In dc.Table Select c).Count 

假设表已经好多个领域的?

+0

如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”)以精确地设置格式和语法突出显示它! – 2012-03-31 07:37:45

回答

3

简而言之:没有。

(如果不是完全相同相同),因为你在查询中立即调用.Count()由LINQ到SQL引擎生成的SQL应该基本上是这两种形式是相同的。

另一方面,编译的查询版本在第一次执行后会更快。这里有一种方法来此做一个编译的查询:

Public Shared FetchCount As Func(Of DataContext, Integer) = _ 
    CompiledQuery.Compile(Function(context as DataContext) _ 
     (From c in context.Table Select c).Count()) 

DataContext将需要的LINQ到SQL的DBML的类型和Table将需要相应的表。而且,我相信您需要导入System.Data.Linq才能访问CompiledQuery

+0

不错的奖金信息,谢谢! – 2012-03-31 06:35:19

+0

@ChrisPhelps - 谢谢 - 如果您认为答案是好的,请记住注意。它给了我们所有温暖模糊的感觉。 – TLS 2012-03-31 06:36:43