Freigeben über


IS [NOT] OF (Entity SQL)

Ermittelt, ob der Typ eines Ausdrucks vom angegebenen Typ oder einem seiner Untertypen ist.

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

Argumente

  • expression
    Ein gültiger Abfrageausdruck, dessen Typ bestimmt werden soll.
  • NOT
    Negiert das Boolean-Ergebnis von IS OF.
  • ONLY
    Legt fest, dass von IS OF nur dann true zurückgegeben wird, wenn expression vom Typ type und nicht von einem seiner Untertypen ist.
  • type
    Der Typ, dessen Übereinstimmung mit dem Typ von expression überprüft werden soll. Der Typ muss mit einem Namespace qualifiziert werden.

Rückgabewert

true, wenn expression vom Typ "T" und "T" entweder ein Basistyp oder ein von type abgeleiteter Typ ist. NULL, wenn expression zur Laufzeit den Wert NULL hat, andernfalls false.

Hinweise

Die Ausdrückeexpression IS NOT OF (type) undexpression IS NOT OF (ONLY type)entsprechen syntaktischNOT (expression IS OF (type))bzw. NOT (expression IS OF (ONLY type)).

In der folgenden Tabelle wird das Verhalten des IS OF-Operators für einige typische und weniger typische Muster dargestellt. Alle Ausnahmen werden von der Clientseite ausgelöst, bevor der Anbieter aufgerufen wird:

Muster Verhaltensweise

null IS OF (EntityType)

Löst aus

null IS OF (ComplexType)

Löst aus

null IS OF (RowType)

Löst aus

TREAT (null AS EntityType) IS OF (EntityType)

Gibt DBNull zurück.

TREAT (null AS ComplexType) IS OF (ComplexType)

Löst aus

TREAT (null AS RowType) IS OF (RowType)

Löst aus

EntityType IS OF (EntityType)

Gibt True/False zurück.

ComplexType IS OF (ComplexType)

Löst aus

RowType IS OF (RowType)

Löst aus

Beispiel

In der folgenden Entity SQL-Abfrage wird der IS OF-Operator verwendet, um den Typ eines Abfrageausdrucks zu ermitteln. Danach wird mithilfe des TREAT-Operators ein Objekt des Typs "People" in eine Auflistung von Objekten des Typs "Student" umgewandelt. Die Abfrage basiert auf dem Entity Data Model "School". Weitere Informationen zum Erstellen dieses Modells finden Sie unter Erstellen des Entity Data Models 'School' (Entity Framework-Schnellstart).

SELECT VALUE TREAT (people as SchoolDataLib.Student) 
    FROM SchoolDataEntities.People as people 
    WHERE people IS OF( SchoolDataLib.Student)

Dieses Beispiel führt zur folgenden Ausgabe:

Chow
Haas
Hamilton
Adams
Paschke
Abrus
Hance

Siehe auch

Konzepte

Typoperatoren (Entity SQL)
Entity SQL-Referenz