ISOF (Entity SQL)

式の型が指定の型であるか、またはそのサブタイプであるかを判断します。

構文

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

引数

expression 型を判断するための任意の有効なクエリ式。

NOT IS OF の EDM.Boolean の結果を否定します。

ONLY trueexpression 型であり、そのサブタイプでない場合に限り、IS OF が type を返すことを指定します。

typeexpression を判定するための型。 型は名前空間で修飾する必要があります。

戻り値

expression が型 T で、T が基本データ型または type の派生型である場合は、true となります。expression が実行時に null である場合は null となり、それ以外の場合は false となります。

Remarks

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) スロー
null IS OF (ComplexType) スロー
null IS OF (RowType) スロー
TREAT (null AS EntityType) IS OF (EntityType) DBNull を返します。
TREAT (null AS ComplexType) IS OF (ComplexType) スロー
TREAT (null AS RowType) IS OF (RowType) スロー
EntityType IS OF (EntityType) true または false を返します。
ComplexType IS OF (ComplexType) スロー
RowType IS OF (RowType) スロー

Entity SQL の次のクエリでは、IS OF 演算子を使用してクエリ式の型を判定し、次に TREAT 演算子を使用して Course 型のオブジェクトを OnsiteCourse 型のオブジェクトのコレクションに変換します。 このクエリは、 School モデルに基づいています。

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

関連項目