这是:
Dim mydata = (From c In dc.Table Select New With {c.ID}).Count
比这更快:
Dim mydata = (From c In dc.Table Select c).Count
假设该表有很多字段?
答案 0 :(得分:3)
答案简短:不。
LINQ-to-SQL引擎生成的SQL对于两种表单(如果不是完全相同)应该基本相同,因为您立即调用.Count()
在查询上。
另一方面,编译的查询版本在第一次执行后会更快。这是为此进行编译查询的一种方法:
Public Shared FetchCount As Func(Of DataContext, Integer) = _
CompiledQuery.Compile(Function(context as DataContext) _
(From c in context.Table Select c).Count())
DataContext
需要是LINQ-to-SQL DBML的类型,Table
需要是适当的表。而且,我认为您需要导入System.Data.Linq
才能访问CompiledQuery
。