1、Linq查询操作包含以下三个不同的、独立的动作:
获取数据源
创建查询
执行查询
2、Linq查询的执行分为两种:
※延迟执行
创建查询时,查询变量本身不执行查询,不包含任何数据,也不会采取其他任何形式的动作。它只不过是一个查询占位符,是一个IEnumerable对象,当枚举此对象的元素时,查询才得以执行。
※立即执行
任何返回单个值的Linq查询都会被立即执行,如Count、Max等,也可以通过调用ToList、ToArray方法来强制查询立即执行。当希望对查询的结果进行缓存时这种做法很有用。
3、T-SQL查询按照下面的顺序以一定的逻辑处理查询:
(8) select
(9) top
(1) from
(3) join
(2) on
(4) where
(5) group by
(6) with
(7) having
(10) order by
Linq查询和T-SQL查询的执行很相似。
4、当类型已知时尽量少使用var,过多的使用会降低源代码对后续开发人员的可读性。
5、Linq Provider是一个库,能实现标准查询操作符为某种特定类型的数据源所提供的功能,它的责任是执行一个给定的查询或将其交给另一个引擎来执行。Linq有多个提供程序:Linq to XML,Linq to Datasets,Linq to Objects,Linq to SQL。
获取数据源
创建查询
执行查询
2、Linq查询的执行分为两种:
※延迟执行
创建查询时,查询变量本身不执行查询,不包含任何数据,也不会采取其他任何形式的动作。它只不过是一个查询占位符,是一个IEnumerable对象,当枚举此对象的元素时,查询才得以执行。
※立即执行
任何返回单个值的Linq查询都会被立即执行,如Count、Max等,也可以通过调用ToList、ToArray方法来强制查询立即执行。当希望对查询的结果进行缓存时这种做法很有用。
3、T-SQL查询按照下面的顺序以一定的逻辑处理查询:
(8) select
(9) top
(1) from
(3) join
(2) on
(4) where
(5) group by
(6) with
(7) having
(10) order by
Linq查询和T-SQL查询的执行很相似。
4、当类型已知时尽量少使用var,过多的使用会降低源代码对后续开发人员的可读性。
5、Linq Provider是一个库,能实现标准查询操作符为某种特定类型的数据源所提供的功能,它的责任是执行一个给定的查询或将其交给另一个引擎来执行。Linq有多个提供程序:Linq to XML,Linq to Datasets,Linq to Objects,Linq to SQL。