Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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)]