一些LINQ功能使用新的3.5程序集(例如System.Core.dll)中的类,接口,委托和扩展方法.重新分发这些程序集是违反许可证的,但可以重新实现它们.使用扩展方法只需要声明为空System.Runtime.CompilerServices.ExtensionAttribute.LINQ...LINQ to SQL和LINQ到实体需要许多新的类(DataContext/ ObjectContext,大量的属性,EntitySet,EntityRef,Link,IQueryable,等)和表达式树...默认的IEnumerable扩展方法在System.Linq.Enumerable中定义,如下所示:
?...扩展方法将表达式树作为参数,而不是lambdas.它们看起来像这样:
?... end function
表达式树版本使您能够获得提供给子句的表达式的树表示,然后可以使用它们来生成SQL代码(或者您想要的任何其他内容).