SQL 生成

在编写实体框架 的提供程序时,必须将实体框架 命令目录树转换为特定数据库可理解的 SQL,如 Transact-SQL for SQL Server 或 PL/SQL for Oracle。 在本节中,您将了解如何针对实体框架 提供程序开发 SQL 生成组件(用于 SELECT 查询)。 有关插入、更新和删除查询的信息,请参见修改 SQL 生成

若要理解本节内容,您应熟悉实体框架 和 ADO.NET 提供程序模型。 您还应理解命令目录树和 DbExpression

SQL 生成模块的角色

实体框架 提供程序的 SQL 生成模块可将给定的查询命令目录树转换为面向符合 SQL:1999 的数据库的单个 SQL SELECT 语句。 生成的 SQL 应具有尽可能少的嵌套查询。 SQL 生成模块不应简化输出查询命令目录树。 实体框架 将执行此操作,例如,它将通过消除联接并折叠连续的筛选器节点来做到这一点。

DBProviderServices 类是用来访问 SQL 生成层以将命令目录树转换为 DbCommands 的开始点。

本节内容

命令目录树的形状

从命令目录树生成 SQL - 最佳做法

示例提供程序中的 SQL 生成

另请参见

概念

编写实体框架数据提供程序