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

true pokud expression je typ T a T buď základní typ, nebo odvozený typetyp ; null pokud expression je null za 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) Throws
Null IS OF (ComplexType) Throws
null IS OF (RowType) Throws
TREAT (null AS EntityType) IS OF (EntityType) Vrátí hodnotu DBNull.
TREAT (null AS ComplexType) IS OF (ComplexType) Throws
TREAT (null AS RowType) IS OF (RowType) Throws
EntityType IS OF (EntityType) Vrátí hodnotu true/false.
ComplexType IS OF (ComplexType) Throws
Typ řádku JE OF (Typ řádku) Throws

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é