Dela via


ISOF (entitets-SQL)

Avgör om typen av uttryck är av den angivna typen eller någon av dess undertyper.

Syntax

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

Argument

expression Ett giltigt frågeuttryck för att fastställa typen av.

Inte negerar EDM. Booleskt resultat av IS OF.

ENDAST Anger att IS OF endast returnerar true om expression är av typen type och inte någon av dess undertyper.

type Den typ som ska testas expression mot. Typen måste vara namnområdeskvalificerad.

Returvärde

trueom expression är av typen T och T antingen är en bastyp eller en härledd typ av type; null om expression är null vid körning, annars . false

Kommentarer

Uttrycken expression IS NOT OF (type) och expression IS NOT OF (ONLY type) är syntaktiskt likvärdiga med NOT (expression IS OF (type)) respektive NOT (expression IS OF (ONLY type)).

I följande tabell visas beteendet för IS OF operatorn över vissa typiska mönster och hörnmönster. Alla undantag genereras från klientsidan innan providern anropas:

Mönster Funktionssätt
null IS OF (EntityType) Kastar
null IS OF (ComplexType) Kastar
null IS OF (RowType) Kastar
TREAT (null AS EntityType) IS OF (EntityType) Returnerar DBNull
TREAT (null AS ComplexType) IS OF (ComplexType) Kastar
TREAT (null SOM RowType) ÄR AV (RowType) Kastar
EntityType IS OF (EntityType) Returnerar sant/falskt
ComplexType IS OF (ComplexType) Kastar
RowType ÄR AV (RowType) Kastar

Exempel

Följande entitets-SQL-fråga använder IS OF-operatorn för att fastställa typen av ett frågeuttryck och använder sedan TREAT-operatorn för att konvertera ett objekt av typen Kurs till en samling objekt av typen OnsiteCourse. Frågan baseras på skolmodellen.

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

Se även