OFTYPE (Entity SQL)

Gibt eine Auflistung der Objekte von einem Abfrageausdruck eines bestimmten Typs zurück.

OFTYPE ( expression, [ONLY] test_type )

Argumente

  • expression
    Jeder gültige Abfrageausdruck, der eine Auflistung von Objekten zurückgibt.
  • test_type
    Der Typ, dessen Übereinstimmung mit jedem von expression zurückgegebenen Objekt getestet wird. Der Typ muss mit einem Namespace qualifiziert werden.

Rückgabewert

Eine Auflistung von Objekten vom Typ test_type, von einem Basistyp oder von einem von test_type abgeleiteten Typ. Wenn ONLY angegeben wird, werden nur Instanzen des test_type oder eine leere Auflistung zurückgegeben.

Hinweise

Ein OFTYPE-Ausdruck stellt einen Typausdruck dar, der angegeben wird, um einen Typtest für jedes Element einer Auflistung durchzuführen. Der OFTYPE-Ausdruck liefert eine neue Auflistung des angegebenen Typs, die nur die zu diesem Typ oder einem seiner Untertypen äquivalenten Elemente enthält.

Ein OFTYPE-Ausdruck ist eine Abkürzung des folgenden Abfrageausdrucks:

select value treat(t as T) from ts as t where t is of (T)

Wenn beispielsweise "Manager" ein Untertyp von "Employee" (Mitarbeiter) ist, liefert der folgende Ausdruck nur die Manager aus einer Auflistung der Mitarbeiter:

OfType(employees, NamespaceName.Manager)

Mithilfe des Typfilters kann eine Auflistung auch umgewandelt werden:

OfType(executives, NamespaceName.Manager)

Da alle Direktoren Manager sind, enthält die resultierende Auflistung alle Direktoren, auch wenn die Auflistung nun als eine Auflistung von Managern typisiert ist.

In der folgenden Tabelle wird das Verhalten des OFTYPE-Operators für verschiedene Muster dargestellt. Alle Ausnahmen werden von der Clientseite ausgelöst, bevor der Anbieter aufgerufen wird:

Muster Verhaltensweise

OFTYPE (Collection(EntityType), (EntityType)

Collection(EntityType)

OFTYPE(Collection(ComplexType), ComplexType)

Löst aus

OFTYPE(Collection(RowType), RowType)

Löst aus

Beispiel

Die folgende Entity SQL -Abfrage verwendet den OFTYPE-Operator, um eine Auflistung der OnsiteCourse-Objekte von einer Auflistung von Kursobjekten zurückzugeben. Die Abfrage basiert auf dem Modell "School".

SELECT onsiteCourse.Location FROM 
    OFTYPE(SchoolEntities.Courses, SchoolModel.OnsiteCourse) 
    AS onsiteCourse            

Siehe auch

Konzepte

Entity SQL-Referenz