Linq使用查询提供程序的概念。
查询提供程序负责将Lambda表达式转换为基础数据存储中的查询。正如Obalix在我之前所说,Linq to Entities查询提供程序将带有Lambda的Linq翻译成真实的SQL,并使用底层ado.net对象执行。请在此处查看标准函数(这里),它们将被翻译成SQL(并注意哪些不会被翻译)。
另一方面,linq to dataset针对DataSet基础设施进行操作。正如您可能记得的那样,数据集具有与之关联的某些查询(获取器、更新器、删除器、插入器),使用DataAdapters对象。 Linq查询被映射到数据集中已经存在的对象=表、列等。不会构建SQL查询,因为提供程序不在这种低级别上操作——数据集是其使用的数据抽象。
如果数据库的不可知性不是您所关心的问题,可以看看Linq to SQL,如果我没听错的话,甚至有一些Linq到Oracle的提供程序。