Sdílet prostřednictvím


ISOF (Entity SQL)

Určuje, zda je typ výrazu zadaný typ nebo jeden z jeho podtypů.

Syntaxe

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

Argumenty

expression Libovolný platný výraz dotazu, který určuje typ dotazu.

NEguje EDM. Logický výsledek IS OF.

Pouze určuje, že FUNKCE IS OF vrátí true pouze v případě expression , že je typu type , a ne jeden z jeho podtypů.

type Typ, který se má testovat expression . Typ musí být kvalifikovaný obor názvů.

Návratová hodnota

truepokud expression je typu T a T buď základní typ, nebo odvozený typetyp ; null pokud expression je null v době běhu; jinak . false

Poznámky

Výrazy expression IS NOT OF (type) a expression IS NOT OF (ONLY type) jsou syntakticky ekvivalentní NOT (expression IS OF (type)) a NOT (expression IS OF (ONLY type))v uvedeném pořadí.

Následující tabulka ukazuje chování operátoru u některých typických IS OF a rohových vzorů. Všechny výjimky jsou vyvolány ze strany klienta před vyvolání zprostředkovatele:

Vzor Chování
Null IS OF (EntityType) Vyvolá
Null IS OF (ComplexType) Vyvolá
null IS OF (RowType) Vyvolá
TREAT (null AS EntityType) IS OF (EntityType) Vrátí hodnotu DBNull.
TREAT (null AS ComplexType) IS OF (ComplexType) Vyvolá
TREAT (null AS RowType) IS OF (RowType) Vyvolá
EntityType IS OF (EntityType) Vrátí hodnotu true/false.
ComplexType IS OF (ComplexType) Vyvolá
Typ řádku JE OF (Typ řádku) Vyvolá

Příklad

Následující dotaz Entity SQL používá operátor IS OF k určení typu výrazu dotazu a pak pomocí operátoru TREAT převede objekt typu Course na kolekci objektů typu OnsiteCourse. Dotaz je založený na školním modelu.

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

Viz také