SelectExpression 类

定义

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

public class SelectExpression : Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase
public sealed class SelectExpression : Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase
[System.Diagnostics.DebuggerDisplay("{PrintShortSql(), nq}")]
public sealed class SelectExpression : Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase
type SelectExpression = class
    inherit TableExpressionBase
[<System.Diagnostics.DebuggerDisplay("{PrintShortSql(), nq}")>]
type SelectExpression = class
    inherit TableExpressionBase
Public Class SelectExpression
Inherits TableExpressionBase
Public NotInheritable Class SelectExpression
Inherits TableExpressionBase
继承
SelectExpression
属性

注解

此类不可公开构造。 如果这是应用程序或提供程序的问题,请在 github.com/dotnet/efcore 提出问题。

构造函数

SelectExpression(JsonQueryExpression, TableExpressionBase, String, Type, RelationalTypeMapping)

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

SelectExpression(TableExpressionBase, String, Type, RelationalTypeMapping, Nullable<Boolean>, String, Type, RelationalTypeMapping)

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

属性

Alias

分配给此表源的别名。

(继承自 TableExpressionBase)
DebugView

在调试器中展开此属性,以获取此 SelectExpression的可读表示形式。

警告:不要依赖于调试字符串的格式。 它们仅用于调试,可能会在版本之间任意更改。

GroupBy

SELECT 的 SQL GROUP BY 子句。

Having

当子句存在时 GroupBy ,SELECT 的 HAVING 谓词。

IsDistinct

一个布尔值,该值指示 DISTINCT 是否应用于此 SelectExpression的投影。

Limit

应用于结果集中行数的限制。

NodeType

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

(继承自 TableExpressionBase)
Offset

要从结果集中跳过行的偏移量。

Orderings

用于对结果集进行排序的排序列表。

Predicate

SELECT 的 WHERE 谓词。

Projection

从结果集中投影出来的表达式列表。

Tables

用于生成结果集的表源列表。

Tags

应用于此 SelectExpression的标记列表。

Type

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

(继承自 TableExpressionBase)

方法

AddAnnotation(String, Object)

向此对象添加批注。 如果已存在具有指定名称的批注,则引发 。

AddAnnotation(String, Object)

向此对象添加批注。 如果已存在具有指定名称的批注,则引发 。

(继承自 TableExpressionBase)
AddCollectionProjection(ShapedQueryExpression, INavigation, Type)

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

AddCollectionProjection(ShapedQueryExpression, INavigationBase, Type)

将集合添加到 的投影中 SelectExpression

AddCrossApply(SelectExpression)

使用 CROSS APPLY 将给定 SelectExpression 添加到表源。

AddCrossApply(SelectExpression, Type)
已过时.

使用 CROSS APPLY 将给定 SelectExpression 添加到表源。

AddCrossApply(ShapedQueryExpression, Expression)

使用 CROSS APPLY 和组合整形器将给定 ShapedQueryExpression 的查询表达式添加到表源。

AddCrossJoin(SelectExpression)

使用 CROSS JOIN 将给定 SelectExpression 的 添加到表源。

AddCrossJoin(SelectExpression, Type)
已过时.

使用 CROSS JOIN 将给定 SelectExpression 的 添加到表源。

AddCrossJoin(ShapedQueryExpression, Expression)

使用 CROSS JOIN 和组合整形器将给定 ShapedQueryExpression 的查询表达式添加到表源。

AddInnerJoin(SelectExpression, SqlExpression)

使用 INNER JOIN 将给定 SelectExpression 添加到表源。

AddInnerJoin(SelectExpression, SqlExpression, Type)
已过时.

使用 INNER JOIN 将给定 SelectExpression 添加到表源。

AddInnerJoin(ShapedQueryExpression, SqlExpression, Expression)

使用 INNER JOIN 和组合整形器将给定 ShapedQueryExpression 的查询表达式添加到表源。

AddLeftJoin(SelectExpression, SqlExpression)

使用 LEFT JOIN 将给定 SelectExpression 的 添加到表源。

AddLeftJoin(SelectExpression, SqlExpression, Type)
已过时.

使用 LEFT JOIN 将给定 SelectExpression 的 添加到表源。

AddLeftJoin(ShapedQueryExpression, SqlExpression, Expression)

使用 LEFT JOIN 和组合整形器将给定 ShapedQueryExpression 的查询表达式添加到表源。

AddOuterApply(SelectExpression)

使用 OUTER APPLY 将给定 SelectExpression 添加到表源。

AddOuterApply(SelectExpression, Type)
已过时.

使用 OUTER APPLY 将给定 SelectExpression 添加到表源。

AddOuterApply(ShapedQueryExpression, Expression)

使用 OUTER APPLY 和组合整形器将给定 ShapedQueryExpression 的查询表达式添加到表源。

AddSingleProjection(ShapedQueryExpression)

将非标量单个结果添加到 的投影中 SelectExpression

AddToProjection(EntityProjectionExpression)

将给定 EntityProjectionExpression 添加到投影。

AddToProjection(SqlExpression)

将给定 SqlExpression 添加到投影。

AppendOrdering(OrderingExpression)

将排序追加到 的现有排序。SelectExpression

ApplyCollectionJoin(Int32, Int32, Expression, INavigation, Type)

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

ApplyCollectionJoin(Int32, Int32, Expression, INavigationBase, Type, Boolean)

应用以前添加的集合投影。

ApplyDefaultIfEmpty(ISqlExpressionFactory)

适用于 DefaultIfEmpty<TSource>(IQueryable<TSource>)SelectExpression

ApplyDistinct()

将 DISTINCT 运算符应用于 的 SelectExpression投影。

ApplyExcept(SelectExpression, Boolean)

将 EXCEPT 操作应用于 SelectExpression

ApplyGrouping(Expression)

从给定的键选择器应用分组。

ApplyGrouping(Expression, Expression, ISqlExpressionFactory)

从给定的键选择器应用分组,并生成 RelationalGroupByShaperExpression 形状结果。

ApplyIntersect(SelectExpression, Boolean)

将 INTERSECT 操作应用于 SelectExpression

ApplyLimit(SqlExpression)

将限制应用于 以 SelectExpression 限制结果集中返回的行数。

ApplyOffset(SqlExpression)

将偏移量应用于 以 SelectExpression 跳过结果集中的行数。

ApplyOrdering(OrderingExpression)

将排序应用于 SelectExpression。 这将覆盖之前指定的任何排序。

ApplyPredicate(SqlExpression)

将筛选器谓词应用于 SelectExpression

ApplyProjection()

将投影映射中的表达式添加到忽略整形器表达式的投影中。 仅当在子查询中填充投影时,才应使用此方法。

ApplyProjection(Expression, ResultCardinality, QuerySplittingBehavior)

将投影映射的表达式添加到投影,并为具体化生成更新的整形器表达式。

ApplyTags(ISet<String>)

应用一组给定的标记。

ApplyUnion(SelectExpression, Boolean)

将 UNION 操作应用于 SelectExpression

AssignUniqueAliases(SqlExpression)

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

ClearOrdering()

清除现有排序。

ClearProjection()
已过时.

清除所有现有投影。

Clone()

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

CreateColumnExpression(TableExpressionBase, String, Type, RelationalTypeMapping, Nullable<Boolean>)

创建一个 ColumnExpression 引用此 SelectExpression上的表的 。

CreateWithAnnotations(IEnumerable<IAnnotation>)

创建具有指定批注的此类对象。

(继承自 TableExpressionBase)
Equals(Object)

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

FindAnnotation(String)

获取具有给定名称的批注,如果不存在,则返回 null

FindAnnotation(String)

获取具有给定名称的批注,如果不存在,则返回 null

(继承自 TableExpressionBase)
GenerateComplexPropertyShaperExpression(StructuralTypeProjectionExpression, IComplexProperty)

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

GenerateOwnedReferenceEntityProjectionExpression(EntityProjectionExpression, INavigation, ISqlExpressionFactory)

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

GenerateOwnedReferenceEntityProjectionExpression(StructuralTypeProjectionExpression, INavigation, ISqlExpressionFactory)

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

GenerateWeakEntityProjectionExpression(IEntityType, ITableBase, String, TableExpressionBase, Boolean)

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

GetAnnotations()

获取当前对象上的所有批注。

GetAnnotations()

获取当前对象上的所有批注。

(继承自 TableExpressionBase)
GetHashCode()

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

GetMappedProjection(ProjectionMember)
已过时.

获取映射到给定 ProjectionMember的投影。

GetProjection(ProjectionBindingExpression)

获取映射到给定 ProjectionBindingExpression的投影。

IsNonComposedFromSql()

检查这 SelectExpression 是否表示 FromSqlExpression 未构成的 。

PrepareForAggregate()

准备 以 SelectExpression 对其应用聚合操作。

PrepareForAggregate(Boolean)

准备 以 SelectExpression 对其应用聚合操作。

Print(ExpressionPrinter)

使用 ExpressionPrinter创建给定表达式的可打印字符串表示形式。

Print(ExpressionPrinter)

使用 ExpressionPrinter创建给定表达式的可打印字符串表示形式。

(继承自 TableExpressionBase)
PrintAnnotations(ExpressionPrinter)

使用 ExpressionPrinter创建与给定表达式关联的批注的可打印字符串表示形式。

(继承自 TableExpressionBase)
Prune()

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

PushdownIntoSubquery()

将 向下 SelectExpression 推送到子查询中。

ReplaceProjection(IReadOnlyDictionary<ProjectionMember,Expression>)

将当前投影映射替换为新的投影映射,以更改从此 SelectExpression投影的内容。

ReplaceProjection(IReadOnlyList<Expression>)

将当前投影映射替换为新的投影映射,以更改从此 SelectExpression投影的内容。

ReplaceProjectionMapping(IDictionary<ProjectionMember,Expression>)
已过时.

将当前投影映射替换为新的投影映射,以更改从此 SelectExpression投影的内容。

ReverseOrderings()

反转 对 SelectExpression的现有排序。

Update(IReadOnlyList<ProjectionExpression>, IReadOnlyList<TableExpressionBase>, SqlExpression, IReadOnlyList<SqlExpression>, SqlExpression, IReadOnlyList<OrderingExpression>, SqlExpression, SqlExpression)

创建一个新的表达式,它类似于此表达式,但使用所提供的子级。 如果所有子级均相同,它将返回此表达式。

Update(IReadOnlyList<ProjectionExpression>, IReadOnlyList<TableExpressionBase>, SqlExpression, IReadOnlyList<SqlExpression>, SqlExpression, IReadOnlyList<OrderingExpression>, SqlExpression, SqlExpression, Boolean, String)
已过时.

创建一个新的表达式,它类似于此表达式,但使用所提供的子级。 如果所有子级均相同,它将返回此表达式。

Update(List<ProjectionExpression>, List<TableExpressionBase>, SqlExpression, List<SqlExpression>, SqlExpression, List<OrderingExpression>, SqlExpression, SqlExpression)

创建一个新的表达式,它类似于此表达式,但使用所提供的子级。 如果所有子级均相同,它将返回此表达式。

Update(List<ProjectionExpression>, List<TableExpressionBase>, SqlExpression, List<SqlExpression>, SqlExpression, List<OrderingExpression>, SqlExpression, SqlExpression, Boolean, String)
已过时.

创建一个新的表达式,它类似于此表达式,但使用所提供的子级。 如果所有子级均相同,它将返回此表达式。

VisitChildren(ExpressionVisitor)

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

VisitChildren(ExpressionVisitor)

表示 SQL 树中的 SELECT 的表达式。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

(继承自 TableExpressionBase)

显式接口实现

IPrintableExpression.Print(ExpressionPrinter)

使用 ExpressionPrinter创建给定表达式的可打印字符串表示形式。

(继承自 TableExpressionBase)

扩展方法

UnwrapJoin(TableExpressionBase)

如果给定 table 为 , JoinExpressionBase则返回它联接到的表。 否则返回 table

适用于