Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Determina se il tipo di un'espressione è del tipo specificato o di uno dei sottotipi.
expression IS [ NOT ] OF ( [ ONLY ] type )
Argomenti
- expression
Qualsiasi espressione di query valida di cui determinare il tipo.
- NOT
Nega il risultato Boolean di IS OF.
- ONLY
Specifica che IS OF restituisce true solo se expression è di tipo type e non di uno dei sottotipi.
- type
Tipo rispetto al quale testare expression. Il tipo deve essere qualificato dallo spazio dei nomi.
Valore restituito
true se expression è di tipo T e T è un tipo di base o un tipo derivato di type; null se expression è null in fase di esecuzione; in caso contrario, false.
Osservazioni
Le espressioniexpression IS NOT OF (type)eexpression IS NOT OF (ONLY type)sono sintatticamente equivalenti aNOT (expression IS OF (type))e NOT (expression IS OF (ONLY type)), rispettivamente.
Nella tabella seguente viene illustrato il comportamento dell'operatore IS OF su alcuni modelli tipici e specifici. Tutte le eccezioni vengono generate sul lato client prima che il provider venga richiamato:
| Modello | Comportamento |
|---|---|
null IS OF (EntityType) |
Genera un'eccezione |
null IS OF (ComplexType) |
Genera un'eccezione |
null IS OF (RowType) |
Genera un'eccezione |
TREAT (null AS EntityType) IS OF (EntityType) |
Restituisce DBNull |
TREAT (null AS ComplexType) IS OF (ComplexType) |
Genera un'eccezione |
TREAT (null AS RowType) IS OF (RowType) |
Genera un'eccezione |
EntityType IS OF (EntityType) |
Restituisce true/false |
ComplexType IS OF (ComplexType) |
Genera un'eccezione |
RowType IS OF (RowType) |
Genera un'eccezione |
Esempio
Nella query Entity SQL seguente viene utilizzato l'operatore IS OF per determinare il tipo di un'espressione di query, quindi viene utilizzato l'operatore TREAT per convertire un oggetto del tipo People in un insieme di oggetti del tipo Student. La query è basata sul modello School Entity Data Model. Per informazioni su come generare questo modello, vedere Generazione del modello EDM School (guida rapida di Entity Framework).
SELECT VALUE TREAT (people as SchoolDataLib.Student)
FROM SchoolDataEntities.People as people
WHERE people IS OF( SchoolDataLib.Student)
L'output ottenuto eseguendo l'esempio è il seguente:
Chow
Haas
Hamilton
Adams
Paschke
Abrus
Hance