共用方式為


IS [NOT] OF (Entity SQL)

判斷運算式的型別是否不屬於所指定的型別或它的其中一個字型別。

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

引數

  • expression
    任何用來判斷屬於何種型別的有效查詢運算式。
  • NOT
    否定 Boolean IS OF 的結果。
  • ONLY
    指定 IS OF 只在 expression 為 type 型別而非它的任何子型別時傳回 true
  • type
    要對它測試 expression 的型別。 此型別必須以命名空間限定。

傳回值

如果 expression 為 T 型別,且 T 為基底類型或 type 的衍生型別,則為 true;如果 expression 在執行階段為 null 則為 null ;否則為 false

備註

運算式expression IS NOT OF (type)expression IS NOT OF (ONLY type)在語法上分別相當於NOT (expression IS OF (type)) NOT (expression IS OF (ONLY type))

下表所示為 IS OF 運算子在某些一般及邊角模式中的行為。 所有例外狀況都是在叫用提供者之前從用戶端擲回:

模式 行為

null IS OF (EntityType)

擲回

null IS OF (ComplexType)

擲回

null IS OF (RowType)

擲回

TREAT (null AS EntityType) IS OF (EntityType)

傳回 DBNull

TREAT (null AS ComplexType) IS OF (ComplexType)

擲回

TREAT (null AS RowType) IS OF (RowType)

擲回

EntityType IS OF (EntityType)

傳回 true/false

ComplexType IS OF (ComplexType)

擲回

RowType IS OF (RowType)

擲回

範例

以下 實體 SQL 查詢使用 IS OF 運算子來判斷查詢運算式的型別,然後使用 TREAT 運算子將 People 型別的物件轉換成 Student 型別的物件集合。 此查詢是以 School Entity Data Model 為依據。 如需如何產生此模型的相關資訊,請參閱產生 School Entity Data Model (Entity Framework 快速入門)

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

這個範例會產生下列輸出:

Chow
Haas
Hamilton
Adams
Paschke
Abrus
Hance

另請參閱

概念

型別運算子 (Entity SQL)
Entity SQL 參考