ISOF (实体 SQL)

确定表达式的类型是指定类型还是其子类型之一。

语法

expression IS [ NOT ] OF ( [ ONLY ] type )

论据

expression 用于确定其类型的任何有效查询表达式。

不否定 EDM。IS OF 的布尔结果。

仅指定 IS OF 仅当类型type不是其任何子类型时才expression返回true

type 要测试 expression 的类型。 类型必须是命名空间限定的。

返回值

true 如果 expression 类型为 T 且 T 为基类型,则为派生类型 type;如果 expression 运行时为 null,则为 null;否则为 false

注解

表达式 expression IS NOT OF (type)expression IS NOT OF (ONLY type) 语法分别等效 NOT (expression IS OF (type)) 于和 NOT (expression IS OF (ONLY type))

下表显示了运算符在某些典型模式和角模式上的行为 IS OF 。 在调用提供程序之前,会从客户端引发所有异常:

图案 行为
null IS OF (EntityType) Throws
null IS OF (ComplexType) Throws
null IS OF (RowType) Throws
TREAT (NULL AS EntityType) IS OF (EntityType) 返回 DBNull
TREAT (NULL AS ComplexType) IS OF (ComplexType) Throws
TREAT (NULL AS RowType) IS OF (RowType) Throws
EntityType IS OF (EntityType) 返回 true/false
ComplexType IS OF (ComplexType) Throws
RowType IS OF (RowType) Throws

示例:

以下 Entity SQL 查询使用 IS OF 运算符来确定查询表达式的类型,然后使用 TREAT 运算符将类型 Course 的对象转换为 OnsiteCourse 类型的对象的集合。 查询基于 学校模型

[!code-sql[DP EntityServices Concepts#TREAT_ISOF]~/samples/snippets/tsql/VS_Snippets_Data/dp entityservices concepts/tsql/entitysql.sql#treat_isof]]

另请参阅