IS [NOT] OF (Entity SQL)

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

Vedere anche

Concetti

Operatori di tipo (Entity SQL)
Riferimenti a Entity SQL