Share via


可為 Null 的結構化型別 (Entity SQL)

結構化型別的 null 執行個體是不存在的執行個體。這與現有的執行個體 (所有的屬性都有 null 值) 不同。

本主題描述可為 Null 的結構化型別,其中包括哪些型別可為 Null,以及哪些程式碼模式會產生可為 Null 之結構化型別的 null 執行個體。

可為 Null 的結構化型別種類

可為 Null 的結構化型別有三種:

  • 資料列型別。

  • 複雜類型。

  • 實體類型。

產生結構化型別之 Null 執行個體的程式碼模式

下列案例會產生 null 執行個體:

  • null 定形為結構化型別:

    TREAT (NULL AS StructuredType)
    
  • 將基底類型 Upcase 成衍生型別 (Derived Type):

    TREAT (BaseType AS DerivedType)
    
  • false 條件上的外部聯結 (Outer Join):

    Collection1 LEFT OUTER JOIN Collection2
    ON FalseCondition
    

    --或

    Collection1 RIGHT OUTER JOIN Collection2
    ON FalseCondition
    

    --或

    Collection1 FULL OUTER JOIN Collection2
    ON FalseCondition
    
  • null 參考取值 (Dereferencing):

    DEREF(NullRef)
    
  • 從空的集合中取得 ANYELEMENT:

    ANYELEMENT(EmptyCollection)
    
  • 檢查是否有結構化型別的 null 執行個體:

    ...
    for (int i = 0; i < reader.FieldCount; i++)
    {
        if (reader.IsDBNull(i))
        {
            Console.WriteLine(“[NULL]”);
        }
        else
        {
            Console.WriteLine(reader.GetValue(i).ToString());
        }
    }
    

另請參閱

概念

Entity SQL 概觀