Risoluzione dell'overload di funzioni (Entity SQL)Function Overload Resolution (Entity SQL)

In questo argomento viene descritto come vengono risolte le funzioni Entity SQLEntity SQL.This topic describes how Entity SQLEntity SQL functions are resolved.

È possibile definire più funzioni con lo stesso nome purché le rispettive firme siano univoche.More than one function can be defined with the same name, as long as the functions have unique signatures.

In una situazione di questo tipo, è necessario applicare i criteri seguenti per determinare la funzione a cui una determinata espressione fa riferimento.When this is the case, the following criteria must be applied to determine which function is referenced by a given expression. Questi criteri vengono applicati in sequenza.These criteria are applied in sequence. Il primo criterio che si applica solo a un'unica funzione rappresenta la funzione risolta.The first criterion that applies only to a single function is the resolved function.

  1. Il parametro numero.Parameter number. La funzione ha lo stesso numero di parametri specificato nell'espressione.The function has the same number of parameters specified in the expression.

  2. Corrispondenza esatta del tipo.Exact match on type. Ogni tipo di argomento della funzione corrisponde esattamente al tipo di parametro o è costituito dal valore letterale Null.Each argument type of the function exactly matches the parameter type, or is the null literal.

  3. Corrispondenza del sottotipo.Match on subtype. Ogni tipo di argomento della funzione corrisponde esattamente al tipo di parametro o è un sottotipo del tipo di parametro oppure l'argomento è costituito dal valore letterale Null.Each argument type of the function exactly matches or is a sub-type of the parameter type, or the argument is the null literal. Nel caso in cui diverse funzioni differiscano solo nel numero di conversioni dei sottotipi richieste, la funzione con il minor numero di conversioni dei sottotipi è la funzione risolta.In the event that several functions differ only in the number of sub-type conversions required, the function with the least number of sub-type conversions is the resolved function.

  4. Corrispondenza del sottotipo o promozione del tipo.Match on subtype or type promotion. Ogni tipo di argomento della funzione corrisponde esattamente al tipo di parametro o è un sottotipo del tipo di parametro o può essere promosso al tipo di parametro oppure l'argomento è costituito dal valore letterale Null.Each argument type of the function exactly matches, is a sub-type of, or can be promoted to the parameter type, or the argument is the null literal. Anche in questo caso, se diverse funzioni differiscono solo nel numero di promozioni e di conversioni dei sottotipi, la funzione con il minor numero di promozioni e di conversioni dei sottotipi è la funzione risolta.Again, in the event that several functions differ only in the number of sub-type conversions and promotions, the function with the least number of sub-type conversions and promotions is the resolved function.

Se nessuno di questi criteri consente la selezione di una singola funzione, l'espressione di chiamata della funzione è ambigua.If none of these criteria result in a single function being selected, the function invocation expression is ambiguous.

Anche nel caso in cui usando queste regole sia possibile estrarre una singola funzione, gli argomenti potrebbero comunque non corrispondere ai parametri.Even if a single function can be extracted using these rules, the arguments still might not match the parameters. In tal caso, viene generato un errore.An error is raised in this case.

Per le funzioni definite dall'utente, la definizione per una funzione inline della query ha la precedenza anche in presenza di una funzione definita dal modello con una firma che è una corrispondenza migliore per la funzione definita dall'utente.For user-defined functions, the definition for an inline query function takes precedence even when a model-defined function exists with a signature that is a better match for the user-defined function.

Vedere ancheSee Also

Riferimento a Entity SQLEntity SQL Reference
Panoramica di Entity SQLEntity SQL Overview
FunzioniFunctions