代码之家  ›  专栏  ›  技术社区  ›  masoud ramezani

linq-to-ef的linq-to-dataset子集是独立的吗?

  •  4
  • masoud ramezani  · 技术社区  · 15 年前

    linq-to-ef的linq-to-dataset子集是独立的吗?

    3 回复  |  直到 15 年前
        1
  •  3
  •   luckyluke    15 年前

    linq使用queryproviders的概念。 查询提供程序负责将lamba表达式转换为底层数据存储上的查询。 正如obalix在我之前所说,linq to entities查询提供程序将带有lambdas的linq转换为真正的sql,后者使用底层ado.net对象执行。看看规范函数 here ,它们被转换为sql(注意哪些不是)。 另一方面,linq to dataset对数据集基础设施起作用。您可能还记得,数据集有一些与之相关联的查询。(getter、updates、deletes、insert)使用dataadapters对象。LINQ查询被映射到数据集=表、列等中已经存在的对象上。SQL查询没有生成,因为提供程序没有在如此低的级别上操作-数据集是它使用的数据抽象。

    如果您不关心数据库不可知论,那么您可以看看linq to sql,如果我没听错的话,甚至还有一些oracle的linq提供者。

        2
  •  6
  •   AxelEckenberger    15 年前

    他们是独立的。

    • linq to dataset对以前使用ado.net创建的数据集起作用。数据集是在使用linq之前加载的,因此sql查询不是动态构建的。

    • linq to entityframework与实体框架上下文相对应。这里的sql查询是基于您提供的linq查询动态构建的。

        3
  •  3
  •   Henk Holterman    15 年前

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

    linq to datatsets是一组扩展方法,允许基于IEnumerable对已加载到数据表中的数据进行LINQ查询。它接近于查询列表和其他集合。

    linq to实体使用查询提供程序和iqueryable将linq查询转换为sql查询。它还提供了将数据库表建模为对象的功能。

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