Udostępnij za pośrednictwem


ISOF (Entity SQL)

Określa, czy typ wyrażenia ma określony typ, czy jeden z jego podtypów.

Składnia

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

Argumenty

expression Dowolne prawidłowe wyrażenie zapytania w celu określenia typu.

NIE neguje EDM. Wynik logiczny IS OF.

Określa tylko, że funkcja IS OF zwraca true tylko wtedy, gdy expression jest typu type , a nie żadnego z jego podtypów.

type Typ do przetestowania expression . Typ musi być kwalifikowany w przestrzeni nazw.

Wartość zwracana

true jeśli expression jest typu T i T jest typem podstawowym lub typem pochodnym type; null, jeśli expression ma wartość null w czasie wykonywania; w przeciwnym razie false.

Uwagi

Wyrażenia expression IS NOT OF (type) i są składniowo równoważne odpowiednio i NOT (expression IS OF (type))NOT (expression IS OF (ONLY type)).expression IS NOT OF (ONLY type)

W poniższej tabeli przedstawiono zachowanie IS OF operatora w niektórych typowych i narożnych wzorcach. Wszystkie wyjątki są zgłaszane po stronie klienta przed wywołaniem dostawcy:

Wzorzec Zachowanie
null IS OF (EntityType) Zgłasza
null IS OF (ComplexType) Zgłasza
null IS OF (RowType) Zgłasza
TREAT (null AS EntityType) IS OF (EntityType) (EntityType) Zwraca wartość DBNull
TREAT (null AS ComplexType) IS OF (ComplexType) IS (ComplexType) Zgłasza
TREAT (null AS RowType) IS OF (RowType) (TYP WIERSZA) Zgłasza
EntityType IS OF (EntityType) Zwraca wartość true/false
ComplexType IS OF (ComplexType) Zgłasza
Typ wiersza JEST OF (Typ wiersza) Zgłasza

Przykład

Następujące zapytanie Entity SQL używa operatora IS OF do określenia typu wyrażenia zapytania, a następnie używa operatora TREAT do konwertowania obiektu typu Course na kolekcję obiektów typu OnsiteCourse. Zapytanie jest oparte na modelu szkolnym.

[!code-sql[DP EntityServices Concepts#TREAT_ISOF]~/samples/snippets/tsql/VS_Snippets_Data/dp entityservices concepts/tsql/entitysql.sql#treat_isof)]

Zobacz też