LINQ到LIN的数据集子集是EF还是这两个是独立的?

时间:2010-03-13 14:31:59

标签: c# linq linq-to-entities linq-to-dataset

LINQ to EF的LINQ to Dataset子集还是这两个是独立的?

3 个答案:

答案 0 :(得分:6)

他们是独立的。

  • Linq to Dataset对以前使用ADO.NET创建的DataSet起作用。数据集在使用linq之前加载,因此SQL查询不是动态构建的。

  • Linq to EntityFramework适用于实体框架上下文。这里,SQL查询是根据您提供的Linq查询动态构建的。

答案 1 :(得分:3)

Linq使用queryProviders的概念。 查询提供程序负责将lamba表达式转换为基础数据存储上的查询。 正如Obalix在我之前所说的,Linq to Entities查询提供程序将linq与lambdas转换为使用底层ado.net对象执行的真实sql。看看规范函数here,它们被翻译成sql(注意哪些不是)。 另一方面,linq to dataset对DAtaSet基础结构起作用。您可能还记得数据集有一些与之关联的查询。 (使用DataAdapters对象进行getter,更新,删除,插入)。 Linq查询映射到数据集中已经存在的对象=表,列等。不构建SQL查询,因为提供程序不在如此低的级别运行 - 数据集是它使用的数据抽象。

如果我不关心数据库不可知性,你可以看一下linq to SQL,如果我没听错,甚至还有一些Oracle的提供者linq。

答案 2 :(得分:3)

他们是独立的,甚至不能很好地合作。

LINQ-to-Datatsets是一组扩展方法,允许LINQ查询基于IEnumerable对已经加载到DataTables中的数据进行查询。它接近于查询List<>和其他收藏品。

LINQ-to-Entities使用查询提供程序和IQueryable将LINQ查询转换为SQL查询。它还提供了将数据库表建模为对象的功能。

如果您使用EF,您可以编写(更多)面向对象,使用DataSet仍然是面向数据库的。

相关问题