共用方式為


函式多載解析 (Entity SQL)

本主題描述如何解析 Entity SQL 函式。

可以定義一個以上的同名函式,只要這些函式具有唯一的簽章即可。

在這種情況下,必須套用下列準則,以判斷哪一個函式是由給定的運算式參考。 這些準則會依序套用。 只套用到單一函式的第一個準則就是被解析的函式。

  1. 參數編號。 此函式具有運算式中指定的相同參數數目。

  2. 類型完全相符。 此函式的每一個引數型別都完全符合參數型別,或是為 null 常值。

  3. 子類型相符。 此函式的每一個引數型別都完全符合或是為參數型別的子型別,或者引數為 null 常值。 萬一有幾個函式只有所需的子型別轉換數目不同,則具有最少子型別轉換數目的函式就是被解析的函式。

  4. 子類型或類型提升相符。 此函式的每一個引數型別都完全符合或是為參數型別的子型別,或者可以提升為參數型別,或是引數為 null 常值。 同樣地,萬一有幾個函式只有子型別轉換和提升數目不同,則具有最少子型別轉換和提升數目的函式就是被解析的函式。

如果沒有一個準則導致單一函式被選取,表示函式引動過程運算式模稜兩可。

即使可以使用這些規則擷取單一函式,引數仍然可能不符合參數。 在此情況下會引發錯誤。

針對使用者定義函式,即使存在更符合使用者定義函式且含簽章的模型定義函式,內嵌查詢函式的定義仍擁有較高的優先順序。

另請參閱